我正在尝试将swift字典[NSNumber : NSNumber]
保存到UserDefaults。我已经尝试将其强制转换为NSDictinonary,但是当我使用set()函数时应用程序崩溃了。
Key是一个信标小调(NSNumber)
值NSTimeinterval
<{1}}
崩溃:
libc ++ abi.dylib:以未捕获的类型异常终止 NSException
NSNumber
打印输出:键类型为LazyMapCollection&lt;字典&lt; NSNumber,NSNumber&gt;,NSNumber&gt;(_ base:[46171:1501585588.173543],_ transnsform :( Function))
答案 0 :(得分:2)
尝试以下答案。
var recentBeacons: [NSNumber : NSNumber] = [:]
func saveRecentBeaconDict()
{
let archivedObject = NSKeyedArchiver.archivedData(withRootObject: recentBeacons as NSDictionary)
UserDefaults.standard.set(archivedObject, forKey: "recentBeacons")
let data = UserDefaults.standard.object(forKey: "recentBeacons") as? Data
if let _data = data {
let allData = NSKeyedUnarchiver.unarchiveObject(with: _data) as! NSDictionary
print(allData)
}
}
答案 1 :(得分:1)
你不能保存类型[NSNumber:NSNumber]的字典,只允许[String,AnyObject]或[NSObject:AnyObject]。
作为方法,您可以将NSNumber
转换为String
的