【发布时间】:2014-09-21 16:22:46
【问题描述】:
我是 iOS 开发新手,直接开始使用 Swift。
当我想向项目中添加新文件时,IDE 会为我提供两个文件,这两个文件似乎在我目前看到的教程中可以互换使用。 它们是“Cocoa Touch Class”和“Swift Class”。
当我创建一个新的 Cocoa Touch 类时,这是我得到的(取决于继承的类)
import UIKit
class CtTest: NSObject {
}
当我创建一个新的 Swift 文件时,我得到了这个:-
import Foundation
这两个类的扩展名都是 .swift
如果我将类定义添加到 Swift 文件并修改如下:-
import UIKit
import Foundation
class SwTest:NSObject
{
}
这两个文件之间是否存在任何差异。
如果是这样,在什么情况下首选哪些类,例如。查看控制器、模型等。
谢谢
【问题讨论】:
-
Foundation是定义NSObject、NSString、NSArray等所有objective-C基础类的框架。另一方面,UIKit 定义视图、视图控制器、控件(例如 UIButton)等。通常,您为模型类(数据)导入 Foundation,为视图/控制器类(表示、逻辑)导入 UIKit。
-
附录:Foundation 是 iOS 和 OSX 通用的。 UIKit 仅适用于 iOS。
-
感谢尼古拉斯的回答。为什么 Cocoa Touch 类会导入 Foundation 而 Swift 类会导入 UIKit 是有道理的。那么我是否应该更喜欢视图控制器的 Swift 类和模型的 Cocoa Touch 类(尽管我很可能使用 Swift 数据类型,如 String、Int、Dictionary 等,而不是 Foundation 数据类型,如 NSNumber、NSString 和 NSDictionary,这使得 Foundation 有点多余) .
-
我自己还没有使用过 swift,但请查看@drewag 下面的答案;它写得很好,很完整。
-
确实如此。当您需要默认添加一些方法时,我还发现 Cocoa Touch 类更有用(正如我在对他的回答的评论中提到的那样)。再次感谢您的投入!
标签: ios xcode cocoa-touch swift foundation