【发布时间】:2015-01-22 20:20:01
【问题描述】:
编辑:
我昨晚尝试设置 NSUserDefaults 但错误不断出现:
ViewController3:
保存数据
@IBAction func addButtonTapped(sender: UIButton) {
var userDefaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()
var itemList:NSMutableArray? = userDefaults.objectForKey("exercisesList") as? NSMutableArray
var dataSet:NSMutableDictionary = NSMutableDictionary()
dataSet.setObject(textField.text, forKey: "exercises")
if ((itemList) != nil){
var newMutableList:NSMutableArray = NSMutableArray();
for dict:AnyObject in itemList!{
newMutableList.addObject(dict as NSDictionary)
}
userDefaults.removeObjectForKey("exercisesList")
newMutableList.addObject(dataSet)
userDefaults.setObject(newMutableList, forKey: "exercisesList")
}else{
userDefaults.removeObjectForKey("exercisesList")
itemList = NSMutableArray()
itemList!.addObject(dataSet)
userDefaults.setObject(itemList, forKey: "exercisesList")
}
userDefaults.synchronize()
self.view.endEditing(true)
textField.text = ""
}
ViewController1:
加载数据
var exercises:NSMutableArray = NSMutableArray();
override func viewDidAppear(animated: Bool) {
var userDefaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()
var itemListFromUserDefaults:NSMutableArray? = userDefaults.objectForKey("itemList") as? NSMutableArray
if ((itemListFromUserDefaults) != nil){
exercises = itemListFromUserDefaults!
}
}
现在我想将加载的数据用于 UIPickerView
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
switch pickerView {
case pickerView1:
return exercises[row] as String
case pickerView2:
return reps[component][row]
case pickerView3:
return weight[component][row]
default:
assertionFailure("Unknown pickerView")
}
}
但是在 UIPickerView 应该返回练习的地方它是空的。在这里需要一些帮助。
【问题讨论】:
-
"如何存储添加的练习" - 存储多长时间?稍后在应用程序的同一运行中?甚至在应用程序终止之后?我的意思是,
var exercises是存储,那么在什么意义上问题还没有解决? -
NSArray 有一个 writeToFile() 方法...
-
@matt :请看一下我的编辑。信息应在关闭应用程序后存储在应用程序中,直到用户将其删除。
-
将 JSON 字符串写入文件。
标签: ios arrays xcode swift save