Iphone 从包含NSArray的NSMutableArray中删除对象
我有一个NSA阵列在里面。这是我目前的结构:Iphone 从包含NSArray的NSMutableArray中删除对象,iphone,objective-c,ios,nsmutablearray,Iphone,Objective C,Ios,Nsmutablearray,我有一个NSA阵列在里面。这是我目前的结构: Paused index ( ( 0, 3579 ), ( 1, 3538 ) ) 如何搜索阵列并移除对象3538?我的预期结果是: Paused index ( ( 0, 3579 ) ) 如何获取外部数组的索引
Paused index (
(
0,
3579
),
(
1,
3538
)
)
如何搜索阵列并移除对象3538?我的预期结果是:
Paused index (
(
0,
3579
)
)
如何获取外部数组的索引?我已经可以进行搜索了,但如何删除该索引中的对象?这是一种非常直接的方法
NSArray *firstArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:100],[NSNumber numberWithInt:1000], nil];
NSArray *secondArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:100],[NSNumber numberWithInt:5000], nil];
NSMutableArray *arrayWithArray = [NSMutableArray arrayWithObjects:firstArray,secondArray,nil];
int i = 0;
for (NSArray *innerArray in arrayWithArray)
{
if ([innerArray containsObject:[NSNumber numberWithInt:5000]])
{
break;
}
i++;
}
NSLog(@"Index of object %d",i);
[arrayWithArray removeObjectAtIndex:i];
应该有其他聪明的方法
编辑:
我觉得这样好一点
int i = [arrayWithArray indexOfObjectPassingTest:^BOOL(id element,NSUInteger idx,BOOL *stop)
{
return [(NSArray *)element containsObject:[NSNumber numberWithInt:5000]];
}];
NSLog(@"Index of object %d",i);
if (i >= 0 && i < [arrayWithArray count])
{
[arrayWithArray removeObjectAtIndex:i];
}
int i=[arrayWithArray indexOfObjectPassingTest:^BOOL(id元素,整数idx,BOOL*stop)
{
return[(NSArray*)元素containsObject:[NSNumber numberwhithint:5000]];
}];
NSLog(@“对象%d的索引”,i);
如果(i>=0&&i<[arrayWithArray count])
{
[arrayWithArray removeObjectAtIndex:i];
}
这是一种非常直接的方法
NSArray *firstArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:100],[NSNumber numberWithInt:1000], nil];
NSArray *secondArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:100],[NSNumber numberWithInt:5000], nil];
NSMutableArray *arrayWithArray = [NSMutableArray arrayWithObjects:firstArray,secondArray,nil];
int i = 0;
for (NSArray *innerArray in arrayWithArray)
{
if ([innerArray containsObject:[NSNumber numberWithInt:5000]])
{
break;
}
i++;
}
NSLog(@"Index of object %d",i);
[arrayWithArray removeObjectAtIndex:i];
应该有其他聪明的方法
编辑:
我觉得这样好一点
int i = [arrayWithArray indexOfObjectPassingTest:^BOOL(id element,NSUInteger idx,BOOL *stop)
{
return [(NSArray *)element containsObject:[NSNumber numberWithInt:5000]];
}];
NSLog(@"Index of object %d",i);
if (i >= 0 && i < [arrayWithArray count])
{
[arrayWithArray removeObjectAtIndex:i];
}
int i=[arrayWithArray indexOfObjectPassingTest:^BOOL(id元素,整数idx,BOOL*stop)
{
return[(NSArray*)元素containsObject:[NSNumber numberwhithint:5000]];
}];
NSLog(@“对象%d的索引”,i);
如果(i>=0&&i<[arrayWithArray count])
{
[arrayWithArray removeObjectAtIndex:i];
}
因为您有这个数组
数组\u暂停\u索引
(
)
再拿一个数组
Array=[Array_暂停_索引objectAtIndex:0]
结果将是
排列
(
)
或第二种方法:
[Array_Paused_index removeObjectAtIndex:1] 因为您有这个数组 数组\u暂停\u索引 ( ) 再拿一个数组 Array=[Array_暂停_索引objectAtIndex:0] 结果将是 排列 ( ) 或第二种方法:
[Array_Paused_index removeObjectAtIndex:1] 你是在问如何实施搜索吗?很抱歉,这个问题有误导性。我想删除该对象,我已经进行了搜索,现在我想删除它。[yourMutableArray removeObjectAtIndex:theIndex];你是在问如何实施搜索吗?很抱歉,这个问题有误导性。我想删除该对象,我已经进行了搜索,现在我想删除它。[yourMutableArray removeObjectAtIndex:theIndex];为什么你要同时在声明中使用for和counter i?for(;;)语句是否更适合这种情况?我不知道它在objective-C中是如何工作的,但在其他语言中这是一种不好的做法,因为for-in语句可能会检查每个元素,而在通则it?中没有顺序?。我不知道。在objective-c中,它始终遵循顺序。但无法确认。你说的有道理。非常感谢。我会记住这一点。类似的情况是当你使用goto和if操作符而不是cycle操作符时。这是可能的,但他们不建议写这样的代码。为什么你们要在语句中同时使用for和counter i?for(;;)语句是否更适合这种情况?我不知道它在objective-C中是如何工作的,但在其他语言中这是一种不好的做法,因为for-in语句可能会检查每个元素,而在通则it?中没有顺序?。我不知道。在objective-c中,它始终遵循顺序。但无法确认。你说的有道理。非常感谢。我会记住这一点。类似的情况是当你使用goto和if操作符而不是cycle操作符时。这是可能的,但他们不建议写这样的代码