[__NSCFArray insertObject:atIndex:]: 发送到不可变对象的变异方法'
[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'
不知道发生了什么事。我只是在数组中添加一个值。
代码如下:
dispatch_async(dispatch_get_main_queue(), { () -> Void in
let requestedURL = NSString(string: url_to_req)
print(requestedURL.substringFromIndex(36))
if requestedURL.substringFromIndex(36) == "forum"{
returnValue = (parseJSON["_id"] as? String)!
print("Here is id of posted question: '\(returnValue)'")
if (NSUserDefaults.standardUserDefaults().objectForKey("PostedQuesIds") != nil){
self.postedQuestionIds = NSUserDefaults.standardUserDefaults().objectForKey("PostedQuesIds") as? NSMutableArray
}
print("Total count of array '\(self.postedQuestionIds)")
self.postedQuestionIds?.addObject(returnValue)// overhere my app gets a crash
// self.postedQuestionIds = NSMutableArray(object: returnValue)
NSUserDefaults.standardUserDefaults().setObject(self.postedQuestionIds, forKey: "PostedQuesIds")
NSUserDefaults.standardUserDefaults().synchronize()
}
})
对于疑惑,我也尝试了下面的代码,好像我忘记了关于 nsmutablearray 的事情
var name = "abc"
let firstname = "dd"
let lastname = "zz"
let arr:NSMutableArray? = NSMutableArray()
arr?.addObject(name)
name = "ABC"
arr?.removeObjectAtIndex(0)
arr?.addObject(firstname)
arr?.addObject(lastname)
arr?.addObject(name)
print("Here is complete array '\(arr)'")
这很好用。请帮助我,看起来我丢失了一些东西并且无法找到它们。非常感谢您的努力。
看来,如果您从 NSUserDefaults 中检索数组,它就会变成不可变数组。试试这个。
let array = NSUserDefaults.standardUserDefaults().objectForKey("PostedQuesIds") as! NSArray
self.postedQuestionIds = NSMutableArray(array: array)
不知道发生了什么事。我只是在数组中添加一个值。
代码如下:
dispatch_async(dispatch_get_main_queue(), { () -> Void in
let requestedURL = NSString(string: url_to_req)
print(requestedURL.substringFromIndex(36))
if requestedURL.substringFromIndex(36) == "forum"{
returnValue = (parseJSON["_id"] as? String)!
print("Here is id of posted question: '\(returnValue)'")
if (NSUserDefaults.standardUserDefaults().objectForKey("PostedQuesIds") != nil){
self.postedQuestionIds = NSUserDefaults.standardUserDefaults().objectForKey("PostedQuesIds") as? NSMutableArray
}
print("Total count of array '\(self.postedQuestionIds)")
self.postedQuestionIds?.addObject(returnValue)// overhere my app gets a crash
// self.postedQuestionIds = NSMutableArray(object: returnValue)
NSUserDefaults.standardUserDefaults().setObject(self.postedQuestionIds, forKey: "PostedQuesIds")
NSUserDefaults.standardUserDefaults().synchronize()
}
})
对于疑惑,我也尝试了下面的代码,好像我忘记了关于 nsmutablearray 的事情
var name = "abc"
let firstname = "dd"
let lastname = "zz"
let arr:NSMutableArray? = NSMutableArray()
arr?.addObject(name)
name = "ABC"
arr?.removeObjectAtIndex(0)
arr?.addObject(firstname)
arr?.addObject(lastname)
arr?.addObject(name)
print("Here is complete array '\(arr)'")
这很好用。请帮助我,看起来我丢失了一些东西并且无法找到它们。非常感谢您的努力。
看来,如果您从 NSUserDefaults 中检索数组,它就会变成不可变数组。试试这个。
let array = NSUserDefaults.standardUserDefaults().objectForKey("PostedQuesIds") as! NSArray
self.postedQuestionIds = NSMutableArray(array: array)