タブを使用して2つのビューを切り替える小さなタブ付きビュープログラムを作成しました。リストと呼ばれるグローバル変数が 1 つあります。これは、両方のビューがアクセスして変更する必要がある情報を含む配列です。ただし、NSUserDefaults を使用して、アプリを閉じた後に将来使用するために配列を保存しようとすると、「タイプ 'Array<_>' の値を予期される引数タイプ 'AnyObject ' に変換できませんか?」 . 2番目のビューのコードは次のとおりです。
@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
}
これは、リスト変数がグローバル変数であるという事実と関係があると推測していますが、この問題を完全に診断するための助けをいただければ幸いです!
編集:
次のようにグローバル変数リストを宣言することで、この問題を解決しました。
var list:[文字列] = 文字列
それ以外の:
変数リスト:配列 = []