如何从反转NSArray
中删除对象。
目前我有一个NSMutableArray
,然后我用
NSArray* reversedCalEvents = [[calEvents reverseObjectEnumerator] allObjects];
现在我需要删除reversedCalEvents
或calEvents
中的项目,并根据条件自动刷新数组显示的表格。
即。
if(someInt == someOtherInt){
remove object at index 0
}
我该怎么做?我无法让它发挥作用。
答案 0 :(得分:12)
您需要一个可变数组才能删除对象。尝试使用reversedCalEvents
创建mutableCopy
。
NSMutableArray *reversedCalEvents = [[calEvents reverseObjectEnumerator] allObjects] mutableCopy];
if (someInt == someOtherInt)
{
[reversedCalEvents removeObject:object];
}
答案 1 :(得分:12)
这是使用键值编码的更实用的方法:
@implementation NSArray (Additions)
- (instancetype)arrayByRemovingObject:(id)object {
return [self filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF != %@", object]];
}
@end
答案 2 :(得分:2)
NSArray不可编辑,因此您无法修改它。
您可以将该数组复制到NSMutableArray并从中删除对象。最后将NSMutableArray的值重新分配给NSArray。
从这里你会得到一个更好的主意...... NSArray + remove item from array
答案 3 :(得分:0)
首先,您应该阅读NSMutableArray
课程本身以熟悉它。
其次,this question应该向您展示一种从NSMutableArray实例中删除对象的简单方法。
第三,您可以通过向其发送reloadData
消息来使UITableView更新。
答案 4 :(得分:0)
你可以试试这个: -
NSMutableArray* reversedCalEvents = [[[calEvents reverseObjectEnumerator] allObjects] mutableCopy];
[reversedCalEvents removeLastObject];