导入 Swift 与导入基础
import Swift vs import Foundation
问题
import Swift
和import Foundation
有什么区别?
直到我读到 by Martin R,我什至不知道有一个 import Swift
。
阅读
我找不到文档,Google 搜索也没有找到太多结果。
我试过的
测试表明 import Swift
没有给出任何编译错误,但这并没有真正回答我的问题。
如果我猜的话,我会说您为 Swift 个项目导入 Swift,为 Objective-C 个项目或 Swift 个项目导入 Foundation使用 Objective-C 类(如 NSString
)。
在 Playground 中对此进行测试:
import Foundation
import Swift
var str = "Hello, playground"
let str2: NSString = "hello"
let str3: String = "hello"
注释掉import Swift
没有错误,str
是String
类型。但是,注释掉 import Foundation
会导致 NSString
出现 "undeclared type" 错误。
我的问题重温
我很乐意放弃 Foundation 并只使用 Swift。所以我一直导入 Swift 是否正确,除非我特别需要使用旧的 Objective-C 类 之一?
是的,如果您想访问 NSObject 或其子class之一,您只需要 import Foundation
。 Foundation 是引入 class 层次结构的框架。但是,很有可能在项目中您需要的不仅仅是 import Swift
。就像 Rob 评论的那样,import UIKit
也是一个不错的选择。
如果您还没有阅读,Apple 会解释 Foundation 框架 here。
如果您想使用字符串、日期等,您需要导入 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/
import Foundation 用于访问 NSObject 或其子对象之一 class.NSObject 意味着我们可以使用 [=18 扩展我们的 class =] 运行时 features.But 导入 UIKit 或导入 swift,在我们创建 xcode 项目时自动生成
问题
import Swift
和import Foundation
有什么区别?
直到我读到 import Swift
。
阅读
我找不到文档,Google 搜索也没有找到太多结果。
我试过的
测试表明 import Swift
没有给出任何编译错误,但这并没有真正回答我的问题。
如果我猜的话,我会说您为 Swift 个项目导入 Swift,为 Objective-C 个项目或 Swift 个项目导入 Foundation使用 Objective-C 类(如 NSString
)。
在 Playground 中对此进行测试:
import Foundation
import Swift
var str = "Hello, playground"
let str2: NSString = "hello"
let str3: String = "hello"
注释掉import Swift
没有错误,str
是String
类型。但是,注释掉 import Foundation
会导致 NSString
出现 "undeclared type" 错误。
我的问题重温
我很乐意放弃 Foundation 并只使用 Swift。所以我一直导入 Swift 是否正确,除非我特别需要使用旧的 Objective-C 类 之一?
是的,如果您想访问 NSObject 或其子class之一,您只需要 import Foundation
。 Foundation 是引入 class 层次结构的框架。但是,很有可能在项目中您需要的不仅仅是 import Swift
。就像 Rob 评论的那样,import UIKit
也是一个不错的选择。
如果您还没有阅读,Apple 会解释 Foundation 框架 here。
如果您想使用字符串、日期等,您需要导入 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/
import Foundation 用于访问 NSObject 或其子对象之一 class.NSObject 意味着我们可以使用 [=18 扩展我们的 class =] 运行时 features.But 导入 UIKit 或导入 swift,在我们创建 xcode 项目时自动生成