【发布时间】:2015-04-06 12:08:30
【问题描述】:
我遇到了将 Swift 结构体数组桥接到 NSArrays 的问题。我想在 NSUserDefaults 中存储一个 Swift 结构数组。 NSUserDefaults 只接受一个 NSArray。有人可以告诉我这是否是正确的做法:
首先我声明一个数组一些 SwiftStruct 并在我的程序中使用它:
var favorites = [SomeSwiftStruct]()
然后为了存储它,我必须把它变成一个 NSArray。让编译器不抱怨的唯一方法是将其向上转换如下:
let tempArray = favorites as Any as NSArray
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(tempArray, forKey: "favorites")
然后检索它我想试试这个:
if let tempArray = defaults.objectForKey("favorites") as NSArray as Any as? [SomeSwiftStruct]{
favorits = tempArray}
不幸的是,我还无法测试这是否有效。目前我只知道没有编译器投诉
【问题讨论】:
标签: ios objective-c arrays swift