是否有可用的类来检查数组中是否不包含某个对象?我想做类似于下面的操作:
if [(myarray doesntContain @"object")]
这可行吗?
是否有可用的类来检查数组中是否不包含某个对象?我想做类似于下面的操作:
if [(myarray doesntContain @"object")]
这可行吗?
对于NSArray
,使用-containsObject:
:
if (![myarray containsObject:someObject]) {
// ...
}
!
,它基本上是“如果不包含对象,则......”。没有特定的 -doesntContainObject:
,因为使用 !
或 == NO
很容易。 - Georg FritzscheNSArray
添加或删除对象,应该使用NSMutableArray
。如果仍然有问题,你应该打开一个新的问题并添加更多细节。还要注意if(!...){...} else {...}
就足够了(你不需要测试两次),而且也许NSMutableSet
更适合你。 - Georg Fritzsche-(BOOL)isEqual:(id)anotherObject;
方法,以便-containsObject:
能够正常工作。 - GlogoNSArray+Additions.h
-(BOOL)不包含对象:(id)object;
-(BOOL)不包含对象集合:(id<NSFastEnumeration>)enumerable;
NSArray+Additions.m
-(BOOL)doesNotContainObjects:(id<NSFastEnumeration>)enumerable {
for (id x in enumerable) {
if ([self containsObject:x]) return NO; // exists, abort!
}
return YES; // it ain't in there, return TRUE;
}
- (BOOL)doesNotContainObject:(id)object {
if ([self containsObject:object]) return NO; return YES;
}
如果你正在处理一个NSArray,你的第一选择可能应该是NSArray的Apple文档,以及可能是方法containsObject,这里有一个例子在这个问题中。
containsObject
的调用 =) - Rob