luv*_*ere 125
NSArray不可变,也就是说,你不能修改它.你应该看看NSMutableArray.查看"删除对象"部分,您会发现有许多功能可以删除项目:
[anArray removeObjectAtIndex: index];
[anArray removeObject: item];
[anArray removeLastObject];
Run Code Online (Sandbox Code Playgroud)
ahm*_*rah 24
NSMutableArray *arrayThatYouCanRemoveObjects = [NSMutableArray arrayWithArray:your_array];
[arrayThatYouCanRemoveObjects removeObjectAtIndex:your_object_index];
[your_array release];
your_array = [[NSArray arrayWithArray: arrayThatYouCanRemoveObjects] retain];
Run Code Online (Sandbox Code Playgroud)
这就是它
如果您不拥有your_array(即它已自动释放),请删除发布并保留消息
mxc*_*xcl 20
此类别可能符合您的口味.但!使用它是节俭的; 因为我们正在转换为NSMutableArray并再次返回,所以效率并不高.
@implementation NSArray (mxcl)
- (NSArray *)arrayByRemovingObject:(id)obj
{
if (!obj) return [self copy]; // copy because all array* methods return new arrays
NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:self];
[mutableArray removeObject:obj];
return [NSArray arrayWithArray:mutableArray];
}
@end
Run Code Online (Sandbox Code Playgroud)
Rud*_*vič 18
以下是使用键值编码的更实用的方法:
@implementation NSArray (Additions)
- (instancetype)arrayByRemovingObject:(id)object {
return [self filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF != %@", object]];
}
@end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104821 次 |
| 最近记录: |