为什么UIImage不是Foundation框架的一部分?

时间:2017-03-21 16:11:07

标签: ios uiimage uikit foundation

我正在开发一款允许用户将图片添加到数据模型的应用。 (我正在使用Realm,但过去我使用CoreData和SQLite做了同样的事情。)我开始用这样的代码构建一个模型对象:

import Foundation
import RealmSwift

class Picture: Object {
    dynamic var imagePath: NSString = ""

    var image: UIImage {
        get {
            ...
        }
        set(UIImage) {
            ...
        }
    }
}

这当然会产生Swift编译器错误:

Use of undeclared type 'UIImage'

添加import UIKit解决了这个问题,但后来我想知道:

  • 为什么UIImage不是数据模型类型?

  • UIImage为什么不是Foundation的一部分?

有人知道吗?

1 个答案:

答案 0 :(得分:2)

  

为什么UIImage不是基金会的一部分?

为什么会这样? :)

UIImage类用于在iOS(以及扩展的iOS系列:watchOS,tvOS ......)上呈现图像。对于macOS,有NSImage类。

UIImage不在Foundation中是有道理的,因为Foundation在所有平台上都是共享的。

此外,图像不是计算系统基础的一部分,而基础类试图解决这个问题。

因此,处理图像不应该进入基础课程,而应该进入更高级别的课程,可能是特定平台的专业课程,以及Apple在UIImage和NSImage中所做的事情。