在Swift中创建结构字典时,我必须导入Foundation吗?

时间:2016-08-19 01:10:22

标签: swift dictionary struct

我制作了一个简单的Swift文件来保存一些像bellow:

这样的数据
import Foundation    

struct someData {
    let stringsAsInts: [name: String, value: Int] = [
        "zero" : 0,
        "one" : 1,
        "two" : 2,
        "three" : 3,
        "four" : 4,
        "five" : 5,
        "six" : 6,
        "seven" : 7,
        "eight" : 8,
        "nine" : 9
    ]
}

然后我通过调用

来获取VC中的数据
let somedata = someData()

但是我必须在包含结构的文件中包含import Foundation吗?当我至少测试时它没有它。

1 个答案:

答案 0 :(得分:2)

如果要使用其功能,则只需要导入Foundation。一个这样的功能是各种NSString方法,如componentsSeparatedByString(_:)。如果没有导入基础,则Swift String不会桥接到NSString:就该代码而言,NSString甚至不存在,因此这些方法也不存在。

另一个例子是能够引用桥接类型,例如String< => NSStringArray< => NSArray,使用AnyObject,例如处理来自Parse后端的结果时。如果没有导入基础,并且关联的桥接,StringArraystruct s的实例,而不是class es。

如果您只使用本机Swift类型而不需要在它们上调用仅基于Foundation的方法,则无需导入Foundation模块。