2011-10-06 42 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

相關問題