我尝试将数组存储到NSUserDefaults
,并在需要填充UITableView
时检索该数组。
目前我正在使用:
//store data
NSUserDefaults.standardUserDefaults().setObject(myArray, forKey: "\(identity.text!)listA")
NSUserDefaults.standardUserDefaults().synchronize()
//retrieve data
let tabledata = NSUserDefaults.standardUserDefaults().stringForKey("\(identity.text!)listA")
myArray = [tabledata!]
tableView.reloadData()
但我明白了
fatal error: unexpectedly found
nil
while unwrapping an Optional value
尝试加载数据时。我不确定问题出在存储还是检索上。有人经历过这种情况吗?
最佳答案
从你的代码中我看到你正在存储一些数组
// Your code
NSUserDefaults.standardUserDefaults().setObject(myArray, forKey: "\(identity.text!)listA")
并检索字符串
//Your code
let tabledata = NSUserDefaults.standardUserDefaults().stringForKey("\(identity.text!)listA")
可能存在类型不匹配,您存储一种类型并检索另一种类型。
在检索时使用 arrayForKey()
或 objectForKey()
请参阅下面的代码。
let tabledata = NSUserDefaults.standardUserDefaults().arrayForKey("\(identity.text!)listA")
或
let tabledata = NSUserDefaults.standardUserDefaults().objectForKey("\(identity.text!)listA")
如果它是一个数组,我会选择第一个。
关于ios - (Swift) 将数组存储和检索到 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37204376/