ios - (Swift) 将数组存储和检索到 NSUserDefaults

标签 ios swift tableview nsuserdefaults

我正在尝试将数组存储到 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/30118735/

相关文章:

ios - 如何在没有自定义单元格的情况下将文本包装在 UITableViewCell 中

ios - Web View 中的编程后退按钮 (WebKit)

ios - 如何从现有的 View Controller 类中调用函数?

ios - 导航组中的自定义后退按钮(Titanium Mobile)

iphone - iphone 设备中的 Paypal 错误 "DEVELOPER ERROR: FILE SYSTEM CHECK FAILED"

iphone - 如何将 View B 中文本字段的内容发送到 View A?

tableview - 请解释如何使用 CheckBoxTableCell

ios - 在 UITableView 滑动中添加额外的按钮

iphone - 如何从 iphone 应用程序启动外部应用程序 (NDrive)

ios - 将 UIView 转换到 SKView 时线程 1 信号 SIGABRT 崩溃