迭代时从NSMutableArray中删除的最佳方法通常是使用以下两种方法之一:
[array enumerateObjectsUsingBlock:]
方法迭代数组中的对象,并使用[block removeObjectForKey:]
方法来删除其中的对象。例如,如果要将index=2的对象从数组中删除,可以这样定义一个方法:[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if (idx == 2) {
[array removeObjectAtIndex:idx];
}
}];
filter
函数和firstObject
函数来提取第一个匹配对象,然后将剩下的对象添加到一个新数组中。例如,如果要从数组中删除index=2的对象:let result = array.filter{ !($0 == objectAt:[array indexOfObject:objectAt:2]) }
if ![result count] > 0 {
result.append(objectAt: [array objectAtIndex:2]);
}
这里,objectAt:
是在Swift 5中使用的新的语法,它类似于.firstObject
和.lastObject
,并用于更简洁地访问对象。
领取专属 10元无门槛券
手把手带您无忧上云