我有一个NSMutableArray,它包含100个[NSNULL null]类型对象。
但有时它包含1个有效对象(可能是NSString)和99个[NSNULL null]类型对象(可能因情况而异)。
我可能知道是否有任何内置函数要检查,数组的所有元素是否包含[NSNULL null]类型对象?(或者它不包含任何一个有效对象。)
感谢。
注意:不使用循环语句迭代所有元素。
答案 0 :(得分: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)
}
答案 1 :(得分:0)
假设你知道你正在寻找的NSString对象,你可以做到这一点非常简单:
NSString *needle = /*The NSString you are looking for*/;
NSMutableArray *allObjects = /*You mutable array*/;
BOOL contains = [allObjects containsObject:needle];
非常简单,但它假设您知道您正在寻找的对象,并且因为您没有在问题中指出这一点,这个答案可能对某人有所帮助。