Mat*_* S. 6 cocoa boolean nsarray
我有一个充满bool的NSArray(表示为数字),我需要测试以查看数组中的任何对象是否等于1.我该怎么办?
Chu*_*uck 12
BOOL不是对象.假设你的意思是某个对象代表一个类似于NSNumber的布尔值来实现一个正确的isEqual:
,你可以做类似的事情[array containsObject:[NSNumber numberWithBool:YES]]
.
正如查克所说,使用-[NSArray containsObject:[NSNumber numberWithBool:YES]]
.作为一个思想实验,这里有一些其他方法来实现目标......
您可以使用NSPredicate
或使用新块API 执行此操作:
NSArray *myArr //decleared, initialized and filled
BOOL anyTrue = [myArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"boolValue == 1"]].count > 0;
Run Code Online (Sandbox Code Playgroud)
要么
BOOL anyTrue = [myArray indexesOfObjectsPassingTest:^(id obj, NSUInteger idx, BOOL *stop) {
if([obj boolValue]) {
*stop = YES;
}
return [obj boolValue];
}].count > 0;
Run Code Online (Sandbox Code Playgroud)
您也可以使用键值编码,但我不确定它的相对效率:
[[myArray valueForKeyPath:@"@sum.boolValue"] integerValue] > 0;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5790 次 |
最近记录: |