2011-10-06 41 views
1

我有一个NSMutableArray,它包含100个[NSNULL null]类型的对象。但是有时它包含1个有效对象(可能是NSString)和99个[NSNULL null]类型的对象(它可能会因情况而有所不同)。任何内置的函数检查“数组的所有元素包含[NSNULL null]”类型的对象或不?

可以我知道是否有任何内置函数来检查,数组的所有元素包含[NSNULL空]类型对象或不?(或它不包含任何一个有效的对象。)

感谢。

注意:不使用循环语句迭代所有元素。

回答

2

您可以使用NSPredicate来实现此目的。

NSMutableArray *allObjects = /* Assume this is your main array */; 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self = nil"]; 
NSArray *nullObjects = [allObjects filteredArrayUsingPredicate:predicate]; 

if ([nullObjects count] == [allObjects count]) { 
    // All objects are [NSNull null] 
} else { 
    // Some objects are of different types(may be NSString) 
} 
0

假设你知道你正在寻找的NSString对象,你可以做到这一点很简单:

NSString *needle = /*The NSString you are looking for*/; 
NSMutableArray *allObjects = /*You mutable array*/; 

BOOL contains = [allObjects containsObject:needle]; 

很简单,但它假设你知道你正在寻找的对象,因为你没有在问题中指出,这个答案可能对某人有所帮助。

+0

它不是我看着哥们.. – sham

相关问题