Ios 进口SWIFT与进口基础

Ios 进口SWIFT与进口基础,ios,objective-c,swift,import,foundation,Ios,Objective C,Swift,Import,Foundation,问题 import Swift和import Foundation之间有什么区别 在我阅读之前,我甚至不知道有一个导入Swift 阅读 我找不到文档,在谷歌上搜索的结果也不多 我尝试的 测试表明,importswift不会给出任何编译错误,但这并不能真正回答我的问题 如果我猜的话,我会说,你为SWIFT项目导入SWIFT,并为ObjyE-C项目导入基础,或者为使用ObjtoE-C类的SWIFT项目(如 NSCORS/)提供基础。 在操场上测试: import Foundation import

问题

import Swift
import Foundation
之间有什么区别

在我阅读之前,我甚至不知道有一个
导入Swift

阅读

我找不到文档,在谷歌上搜索的结果也不多

我尝试的

测试表明,
importswift
不会给出任何编译错误,但这并不能真正回答我的问题

如果我猜的话,我会说,你为SWIFT项目导入SWIFT,并为ObjyE-C项目导入基础,或者为使用ObjtoE-C类的SWIFT项目(如<代码> NSCORS/<代码>)提供基础。 在操场上测试:

import Foundation
import Swift

var str = "Hello, playground"
let str2: NSString = "hello"
let str3: String = "hello"
注释掉
import Swift
不会出现错误,
str
属于
String
类型。但是,注释掉
import Foundation
会给
NSString
带来一个“未声明类型”错误

重新审视我的问题


我会很高兴放弃基础,只使用SWIFT。除非我特别需要使用一个旧的Objective-C类,否则我可以一直导入Swift吗?

是的,如果您想访问NSObject或其子类,您只需要导入基础。基金会是引入类层次结构的框架。然而,在一个项目中,很可能需要的不仅仅是
导入Swift
。就像Rob评论的那样,
导入UIKit
也是一个不错的选择


如果你还没有读过它,Apple解释了基础框架。

< P>如果你想使用字符串、日期等,你需要导入Foundation。

<强>基础框架为应用程序和框架提供了一个基本功能层,包括数据存储和持久性、文本处理、日期和时间计算、排序和过滤和网络。>/P> 如果要使用UITableViewController、UIAlertController,则需要导入UIKit

<强>如果导入UIKIT,则不需要导入基础,因为它已经在后台导入了。< /强>

Swift标准库定义了编写Swift程序的基本功能层,包括:

基本数据类型、通用数据结构、全局函数(如打印(:分隔符:终止符:)和abs(:))、协议(如采集和equalable…)。。。等

<强>如果导入基础,则不需要再次导入SWIFT,因为基础包含默认的SWIFT标准库的引用。>P/> <>强>当你写的东西不是针对iOS应用程序,比如说基于蒸汽的服务器编程时,你可能需要考虑导入SWIFT。< /强>

参考:-

请参阅:-

< P>用于访问NSObject的导入基础或其子类.NStObject中的一个,意味着我们可以使用Objic C运行时特性来扩展类。但是导入UIKIT或导入SWIFT,这是在创建XCODE项目

时自动生成的,只需使用您的代码所需的任何代码即可。正如Martin在您链接到的评论中所说的,您可以使用最窄的类来完成代码中的工作。因此,如果您正在使用UIKit类,请导入UIKit。如果使用基础类而不使用UIKIT,请使用<代码>导入基础< /代码>。如果不需要任何UIKIT或基础类,请使用<代码>导入SWIFT 。我认为导入SWIFT 总是隐含在那里,如果你不需要任何UIKIT或者基础项目在游戏场中,或者甚至在一个项目中的普通文件中,如果它是纯SWIFT,它只在没有<>代码>导入Swift 的情况下使用。所以我想知道实际需要它的地方…我注意到我的许多“.swift”文件没有
import swift
行或任何其他
import
行生成,但是它们使用
Array
Dictionary
等。你能理解为什么会这样吗?我已经问过了。谢谢根据我的研究,用新的评论更新了答案。