我创建了一个小的选项卡式视图程序,它使用选项卡在两个视图之间切换。有一个名为list的全局变量,它是一个包含两个视图都需要访问和更改的信息的数组。但是,当我尝试使用NSUserDefaults保存数组以供将来在应用程序关闭后使用时,我收到一条错误消息:"无法转换类型'数组< _>'期望参数类型' AnyObject?'"。这是我的第二个视图的代码:
@IBOutlet weak var reminder: UITextField!
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
}
@IBAction func submit(sender: AnyObject) {
if reminder.text == "" {
label.text = "Please type a reminder!"
} else {
list.append(reminder.text!)
reminder.text = ""
label.text = "Add A Reminder"
}
// The below line is giving the error!!!!!
// Specifically the fact that I am using the variable "list"
NSUserDefaults.standardUserDefaults().setObject(list, forKey: "reminders")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
我猜这与list变量是一个全局变量这一事实有关,但我很感激有一些帮助来完全诊断这个问题!
编辑:
我通过声明全局变量列表解决了这个问题:
var list:[String] = String
而不是:
var list:Array = []