【发布时间】:2015-01-20 15:00:53
【问题描述】:
var objects: AnyObject? = NSKeyedUnarchiver.unarchiveObjectWithData(data)
如何将对象变成 NSMutableArray ?我归档了 NSMutableArray。
【问题讨论】:
标签: ios swift nsmutablearray nskeyedunarchiver
var objects: AnyObject? = NSKeyedUnarchiver.unarchiveObjectWithData(data)
如何将对象变成 NSMutableArray ?我归档了 NSMutableArray。
【问题讨论】:
标签: ios swift nsmutablearray nskeyedunarchiver
只需将结果向下转换为NSMutableArray:
if let objects = NSKeyedUnarchiver.unarchiveObjectWithData(data) as? NSMutableArray {
// ...
} else {
// failed
}
如果归档对象是(不可变的)NSArray,那么您必须创建一个可变的
复制:
if let array = NSKeyedUnarchiver.unarchiveObjectWithData(data) as? NSArray {
let objects = NSMutableArray(array: array)
// ...
}
【讨论】:
as? NSArray 吗?
[AnyObject?] 会更“迅速”。我对将 NSMutableArray 设置为 let 时会发生什么感兴趣,因为您无法更改 let.. 因此将其设为 NSArray
let 分配它,您也可以修改引用的(可变)数组。它不会使它成为一个 NSArray。