在Swift和可变数据中初始化

时间:2014-06-14 17:04:00

标签: swift

观看WWDC' 14会议"将Swift与Objective-C和#34整合; 44&00; 00"写了两行我无法理解的代码。

在对象初始化期间,他写道:

Class className; NSObject, NSCoding
{

    let data:NSData
    let type:String

    init(data: NSData, type: String)
    {
        self.data = data.copy() as NSData   // 1
        self.type = type                    // 2

    }

    //...
}

我无法理解我用//1//2标记的行。 我知道copy()返回AnyObject类型,因此需要NSData类型转换。但我不明白为什么self.type不需要这种治疗。

1 个答案:

答案 0 :(得分:7)

NSData具有可传递的子类NSMutableData,也可以传递=>你必须复制它才能安全。 String是一个结构,因此通过值传递(复制),因此您不需要复制它。