今天做搜索纪录的时候遇到个奇怪的问题,纪录一下。
由于我们做的搜索纪录只需要保存6条纪录,所以我把他放进了NSUserDefaults中
NSMutableArray *searchRecordArray = [[NSUserDefaultsstandardUserDefaults] objectForKey:@"SearchRecord"];
但是在对可变数组进行删除操作时却发生了下面的错误,可我的数组是用NSMutable声明的。
NSCFArray insertObject:atIndex:]: mutating method sent to immutable obje
解决方法:再声明一个可变数组进行删除。。。
NSMutableArray *newsearchRecordArray = [NSMutableArray arrayWithArray:searchRecordArray];
相关推荐
对于NSMutableArray,可以使用`insertObject:atIndex:`方法来插入一个对象到指定位置: ```objc NSMutableArray *array = [NSMutableArray arrayWithObjects:@"A", @"B", @"C", nil]; [array insertObject:@"D" at...
开发中常用的移动、删除、添加; 移动: 1:数据源 2:移除方法: - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)... [_array insertObject:object atIndex:toIndexPath.row]; }
- `insertObject:atIndex:`方法可以在指定的下标位置插入一个元素。 - `removeObject:`方法可以删除数组中所有与给定对象相同的元素。 - `removeObject:inRange:`方法可以删除数组中指定范围内所有与给定对象相同...
2. 插入元素:`insertObject:atIndex:`。 3. 替换元素:`replaceObjectAtIndex:withObject:`。 4. 删除元素:`removeObjectAtIndex:`,`removeAllObjects`。 5. 遍历数组:可以使用`for`循环或快速遍历(`for object...
- `NSMutableArray` 的 `addObject:`、`insertObject:atIndex:`、`removeObjectAtIndex:` 方法分别用于添加、插入和移除对象。 3. **字典操作**: - `NSDictionary` 和 `NSMutableDictionary` 使用 `objectForKey...
例如,`- (void)insertObject:(id)obj atIndex:(NSUInteger)index`是一个实体方法,它接受一个对象和一个索引作为参数。 通信是Objective-C中调用方法的方式,通过使用对象名和中括号`[]`来实现。例如,`[myObject ...
例如,“insertObject:atIndex:”比“insert:at:”更清晰,后者缺少上下文信息。 - **避免缩写:** 除非是广泛接受的缩写,否则应完整拼写名称。例如,“destinationSelection”比“destSel”更好。 - **避免歧义...
Objective-C中的NSArray提供了一系列的数组操作方法,如insertObject:atIndex:、removeObjectAtIndex:等,用于动态调整频道顺序。 6. **视图刷新**:订阅状态改变后,视图需要实时更新。使用UITableView或...
- 插入元素:`[mutableArray insertObject:@"ItemToInsert" atIndex:1];` ### 三、NSDictionary与NSMutableDictionary #### NSDictionary `NSDictionary`用于表示键值对的不可变集合。键必须是不可变对象,如字符...
例如,“insertObject:atIndex:”比“insert:at:”更清晰,后者缺少上下文信息。 - **避免缩写:** 除非是广泛接受的缩写,否则应完整拼写。例如,“destinationSelection”优于“destSel”,后者可能导致理解困难...
在特定位置插入元素:`[mutableArray insertObject:@"newElement" atIndex:index]` ##### 删除元素 移除数组中的某个元素:`[mutableArray removeObject:@"element"]` 移除特定索引处的元素:`[mutableArray ...
调用方法实际上是向对象发送消息,如`[myArray insertObject:anObject atIndex:0];`。此外,Objective-C还支持点语法,如`myArray.insertObject(anObject atIndex:0);`,这使得代码更加简洁易读。 ### 属性声明 自...
[mArray insertObject:@"*1*" atIndex:0]; ``` - 删除对象: ```objc [mArray removeObjectAtIndex:0]; [mArray removeObject:@"3"]; [mArray removeLastObject]; [mArray removeObjectAtIndex:(mArray.count - 1)]...
- `-(void)insertObject:(id)anObject atIndex:(int)index;`:在指定位置插入一个对象。 - `-(void)removeObjectAtIndex:(int)index;`:移除指定索引处的对象。 #### NSDictionary与NSMutableDictionary - **...
[array insertObject:@"New Object" atIndex:0]; ``` Objective-C的类方法常用于工厂模式,生成新实例。例如,NSMutableArray类的`array`类方法可以创建一个新的空数组: ```objc NSMutableArray *myArray = ...
例如,命名"insertObject:atIndex:"比"insert:at:"更加清晰,因为前者明确指出要插入的对象及其位置,而后者则有歧义。同样,"removeObjectAtIndex:"清楚地表达了该方法用于移除特定索引位置的对象,而单独的"remove...