我正在编写一些代码,这些代码将使用NSMutableArray并在其中存储int值,包含在NSNumbers中.
我想确认使用具有相同值的新NSNumber查询iOS NSArray或NSMutableArray是合法的,如果我需要显式迭代数组,并检查每个int值是否等于我想要测试的值?
这似乎有效:
NSMutableArray* walkableTiles = [NSMutableArray array]; [walkableTiles addObject:@(1)]; [walkableTiles addObject:@(2)]; [walkableTiles addObject:@(3)]; if([walkableTiles containsObject:@(1)]) { DLog(@"contains 1"); //test passes } if([walkableTiles containsObject:[NSNumber numberWithFloat:2.0]]) { DLog(@"contains 2");//test passes } if([walkableTiles containsObject:[NSNumber numberWithInt:3]]) { DLog(@"contains 3");//test passes }
rmaddy.. 16
你做的很好.为什么不呢?
该containsObject:
方法实际上遍历数组并isEqual:
在传入您要检查的对象的每个对象上调用该方法.
顺便说一句 - 这里没有什么特别的用法NSNumber
.对于任何对象类型的数组都是一样的.只要对象的类具有有效的isEqual:
方法,它就可以工作.