質問: people() p.setname(name: textView.text!) todoList.insert(p , at:0) UserDefaults.standard.set(todoList, forKey: "todoValue") //このUserDefaultsの部分でえらーが出る self.textView.resignFirstResponder() dismiss(animated: true, completion: nil) ``` swift10 xcode4.0 ``` ### 試したこと todoListがnilになっていないかの確認とsetメソッドの定義確認 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: UserDefaults set(_:forKey:) Discussionより > > The value parameter can be only property list objects: NSData, NSString, NSNumber, NSDate, NSArray, or NSDictionary. For NSArray and NSDictionary objects, their contents must be property list objects. For more information, see What is a Property List? in Property List Programming Guide. > > > 【Google翻訳】valueパラメータは、プロパティリストオブジェクト(NSData、NSString、NSNumber、NSDate、NSArray、またはNSDictionary)のみになります。 NSArrayおよびNSDictionaryオブジェクトの場合、それらの内容はプロパティリストオブジェクトでなければなりません。 詳細については、『プロパティリストプログラミングガイド』の「物件リストとは」を参照してください。 つまり、独自クラス(の配列)はUserDefaultsにsetできません。