从 NSMutableArray 中删除多个对象
Removing multiple objects from an NSMutableArray
是否可以通过向 NSMutableArray
传递要删除的对象列表或数组来删除多个对象?现在我有一个 deleteAll 方法,它从 Parse 服务器中删除所有消息,然后从本地数组中删除消息。
但是,由于在它完成删除然后调用 [myArray removeAllObjects]
时这是异步的,所以可能会收到一条新消息,我不想不小心从数组中删除它。
所以我考虑在执行删除操作之前复制消息数组,并在异步调用完成后从消息数组中删除与副本相同的所有元素。
有没有好的方法,或者我唯一的选择是迭代数组并删除它是否与副本中的内容匹配?
查看NSMutableArray
的- (void)removeObjectsInArray:(NSArray *)otherArray
方法
你不能只使用for循环并删除你想要的对象吗?像这样:
NSMutableArray *yourArray = [..... etc....];
NSMutableArray *editArray = [[NSMutableArray alloc] init];
editArray = [yourArray copy];
NSMutableArray *itemsToDelete = [....items....];
for (int loop = 0; loop < [yourArray count]; loop++) {
for (int loop_2 = 0; loop_2 < [editArray count]; loop_2++) {
if (editArray[loop_2] == yourArray[loop]) {
[editArray removeObjectAtIndex:loop_2];
}
}
}
是否可以通过向 NSMutableArray
传递要删除的对象列表或数组来删除多个对象?现在我有一个 deleteAll 方法,它从 Parse 服务器中删除所有消息,然后从本地数组中删除消息。
但是,由于在它完成删除然后调用 [myArray removeAllObjects]
时这是异步的,所以可能会收到一条新消息,我不想不小心从数组中删除它。
所以我考虑在执行删除操作之前复制消息数组,并在异步调用完成后从消息数组中删除与副本相同的所有元素。
有没有好的方法,或者我唯一的选择是迭代数组并删除它是否与副本中的内容匹配?
查看NSMutableArray
- (void)removeObjectsInArray:(NSArray *)otherArray
方法
你不能只使用for循环并删除你想要的对象吗?像这样:
NSMutableArray *yourArray = [..... etc....];
NSMutableArray *editArray = [[NSMutableArray alloc] init];
editArray = [yourArray copy];
NSMutableArray *itemsToDelete = [....items....];
for (int loop = 0; loop < [yourArray count]; loop++) {
for (int loop_2 = 0; loop_2 < [editArray count]; loop_2++) {
if (editArray[loop_2] == yourArray[loop]) {
[editArray removeObjectAtIndex:loop_2];
}
}
}