[NSCFArray replaceObjectAtIndex:withObject:]:mutating方法发送到不可变对象

时间:2015-01-21 16:04:03

标签: objective-c nsmutablearray nsuserdefaults ios8.1

更新这是我的代码;最后一行代码导致错误,如标题中所述。我理解userDefaults将始终返回一个不可变对象;那么我该如何解决这个问题呢?我尝试将发送字段设为“可变副本”,但它被标记为错误。

    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];

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

NSMutableArray *staffNamesArray = [[NSMutableArray alloc] initWithArray:[userDefaults arrayForKey:@"staffNamesArray"]];

希望这对你有帮助!