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

希望对您有所帮助!