[NSCFArray replaceObjectAtIndex:withObject:]:发送到不可变 object 的变异方法
[NSCFArray replaceObjectAtIndex:withObject:]: mutating method sent to immutable object
已更新 这是我的代码;最后一行代码导致了标题中描述的错误。我知道 userDefaults 总是 return 一个不可变的 object;那我该如何解决呢?我尝试将发送字段设置为 "mutable copy",但它被标记为错误。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if(textField.tag == kStaffName) { // get index of staffName textField
NSMutableArray *staffNamesArray = [[userDefaults arrayForKey:@"staffNamesArray"] mutableCopy];
NSInteger indexSelected = [oStaffPickerView selectedRowInComponent:0];
[staffNamesArray replaceObjectAtIndex:indexSelected withObject:textField.text];
你可以试试这个:
NSMutableArray *staffNamesArray = [[NSMutableArray alloc] initWithArray:[userDefaults arrayForKey:@"staffNamesArray"]];
希望对您有所帮助!
已更新 这是我的代码;最后一行代码导致了标题中描述的错误。我知道 userDefaults 总是 return 一个不可变的 object;那我该如何解决呢?我尝试将发送字段设置为 "mutable copy",但它被标记为错误。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if(textField.tag == kStaffName) { // get index of staffName textField
NSMutableArray *staffNamesArray = [[userDefaults arrayForKey:@"staffNamesArray"] mutableCopy];
NSInteger indexSelected = [oStaffPickerView selectedRowInComponent:0];
[staffNamesArray replaceObjectAtIndex:indexSelected withObject:textField.text];
你可以试试这个:
NSMutableArray *staffNamesArray = [[NSMutableArray alloc] initWithArray:[userDefaults arrayForKey:@"staffNamesArray"]];
希望对您有所帮助!