我是Swift编程的新手,并且一直致力于一个待办事项列表应用程序。我正在尝试使用永久数据存储来保存用户输入的信息,但我不断收到错误"Thread 1: signal SIGABRT
" 。当我检查输出日志时,我看到错误
"因未捕获的异常而终止应用 ' NSInternalInconsistencyException',原因:' - [__ NSCFArray insertObject:atIndex:]:发送到不可变对象的变异方法'"
我的代码如下。我使用一个简单的文本框和一个按钮:
@IBOutlet var text1: UITextField!
@IBAction func button1(_ sender: AnyObject) {
let listObject = UserDefaults.standard.object(forKey: "lists")
var items:NSMutableArray
if let tempitems = listObject as? NSMutableArray {
items = tempitems
items.addObjects(from: [text1.text!])
} else {
items = [text1.text!]
}
UserDefaults.standard.set(items, forKey: "lists")
text1.text = ""
}
答案 0 :(得分:0)
崩溃正是它的意思:你不能改变不可变对象。试试这个:
var items: NSMutableArray!
if let listObject = UserDefaults.standard.object(forKey: "lists") as? NSArray {
items = listObject.mutableCopy() as! NSMutableArray
} else {
items = NSMutableArray()
}
items.addObjects(from: [text1.text!])