问题
import Swift
和import Foundation
之间的区别是什么?
在我this comment之前阅读Martin R之前,我甚至不知道有import Swift
。
读
我找不到文档,谷歌搜索没有发现太多。
我尝试了什么
测试显示import Swift
没有给出任何编译错误,但这并没有真正回答我的问题。
如果我猜测,我会说您为Swift项目导入Swift,并为Objective-C项目导入Foundation,或者为使用Objective-C类的Swift项目导入(如NSString
)。< / p>
在Playground中测试:
import Foundation
import Swift
var str = "Hello, playground"
let str2: NSString = "hello"
let str3: String = "hello"
评论import Swift
没有错误,str
属于String
类型。但是,注释import Foundation
会为NSString
提供“未声明的类型”错误。
重新审视我的问题
我很高兴放弃基金会并且只使用Swift。所以我一直只能导入Swift,除非我特别需要使用旧的Objective-C类之一吗?
答案 0 :(得分:22)
是的,如果您想访问NSObject或其子类,则只需要import Foundation
。 Foundation是引入该类层次结构的框架。但是,在项目中,您需要的不仅仅是import Swift
。就像Rob评论的那样,import UIKit
也是一个不错的选择。
如果您尚未阅读,Apple会解释基金会框架here。
答案 1 :(得分:1)
如果要使用字符串,日期等,则需要导入Foundation。
Foundation框架为应用程序和框架提供了基础层功能,包括数据存储和持久性,文本处理,日期和时间计算,排序和过滤以及联网。
如果要使用UITableViewController,UIAlertController,则需要导入UIKit。
如果导入UIKit,则不需要导入Foundation,因为它已经在后台导入了。
Swift标准库定义了用于编写Swift程序的功能的基本层,包括:
基本数据类型,通用数据结构,诸如print(:separator:terminator :)和abs( :)之类的全局函数,诸如Collection和Equatable之类的协议...等
如果您导入Foundation,则无需再次导入Swift,因为Foundation默认包含对Swift标准库的引用。
在编写非iOS应用程序的内容时,例如基于Vapor的服务器编程,您可能需要考虑导入Swift。
参考:- https://developer.apple.com/documentation/swift/swift_standard_library/
请参考:- https://hasancan.tech.blog/2018/01/17/import-foundation-vs-uikit/
答案 2 :(得分:0)
import Foundation 用于访问NSObject或其子类之一。NSObject表示我们可以使用 objective C 运行时功能扩展我们的类。但是,导入UIKit或import swift,在创建xcode项目时会自动生成