【发布时间】:2013-12-12 16:57:06
【问题描述】:
我正在编写一些代码,这些代码将使用 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
}
【问题讨论】:
-
你说的合法是什么意思?我很确定
containsObject:在某个时候会遍历数组。 -
您阅读过 containsObject 的规范吗? “此方法通过向数组的每个对象发送 isEqual: 消息(并将 anObject 作为参数传递给每个 isEqual: 消息)来确定数组中是否存在 anObject。”
-
代替 NSNumber numberWithint:你可以使用文字并使用@(3)
标签: ios objective-c search nsmutablearray nsarray