ios - 导入 Swift 与导入基础

标签 ios objective-c swift import foundation

问题

import Swiftimport Foundation 有什么区别?

直到我读到 this comment通过 Martin R ,我什至不知道有一个import Swift

阅读

我找不到文档,并且进行 Google 搜索也没有找到太多结果。

我尝试过的

测试表明 import Swift 没有给出任何编译错误,但这并没有真正回答我的问题。

如果我猜的话,我会说你为 Swift 项目导入 Swift,为 Objective-C 项目导入 Foundation,或者可能为使用 Objective-C 类(如 NSString)的 Swift 项目导入).

在 Playground 中测试:

import Foundation
import Swift

var str = "Hello, playground"
let str2: NSString = "hello"
let str3: String = "hello"

注释掉 import Swift 没有错误,strString 类型。但是,注释掉 import Foundation 会导致 NSString 出现“未声明的类型”错误。

重访我的问题

我很乐意放弃 Foundation 而只使用 Swift。那么我一直导入 Swift 是否正确,除非我特别需要使用旧的 Objective-C 类之一?

最佳答案

是的,如果您想访问 NSObject 或其子类之一,您只需要import Foundation。 Foundation 是引入该类层次结构的框架。但是,很可能在项目中您需要的不仅仅是import Swift。正如 Rob 评论的那样,import UIKit 也是一个不错的选择。

如果您还没有读过,Apple 解释了 Foundation 框架 here .

关于ios - 导入 Swift 与导入基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33943477/

相关文章:

iphone - 为什么我不能在 switch 语句中使用 NSInteger?

ios - 我怎样才能加快 UISnapBehavior 的速度?

swift - 跨步协议(protocol)

ios - 如何使用 Unity3D 为 iPad Pro 创建多屏体验?

ios - 将 .environmentObject 与呈现为工作表的 View 一起使用会导致 onReceive 不触发/与 @EnvironmentObject 冲突

ios - 如何将水平滚动添加到 UIView?

ios - CoreData - 多个持久存储

iphone - 先学习 Leopard 的 Cocoa 然后再学习 iPhone 的 Cocoa Touch 有意义吗?

ios - 如何自动调整 ViewController Root View 的大小以适应其内容?

ios - 如何正确设置UIRequiredDeviceCapability?