在Swift和可变数据中初始化

Mat*_*oal 0 swift

观看WWDC '14会议"将Swift与Objective-C集成",44'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

    }

    //...
}
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*ich 7

NSData具有可以传递的可变子类NSMutableData =>您必须将其复制为安全的.String是一个结构,因此通过值传递(复制),因此您不需要复制它.