Ios 预测与过滤
我有一个名为comboData的Ios 预测与过滤,ios,nsmutablearray,nspredicate,Ios,Nsmutablearray,Nspredicate,我有一个名为comboData的NSMutableArray,我正试图过滤掉它: NSMutableArray * filteredVersion = [[NSMutableArray alloc] init]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id >= %d AND id <= %d",1,7]; [filteredVersion setArray: [comb
NSMutableArray
,我正试图过滤掉它:
NSMutableArray * filteredVersion = [[NSMutableArray alloc] init];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id >= %d AND id <= %d",1,7];
[filteredVersion setArray: [comboData filteredArrayUsingPredicate:
predicate]
];
在第二行。
我(重新)错过了什么
[编辑]
comboData如下所示(在调试区域打印)
好的,那么您的数组
comboData
中填充了nsdictionary
NSDictionary
只能包含对象
它看起来像键id
引用了一个数字,因此它将是一个NSNumber
在谓词中,您将其视为int
你需要这样的东西
// erm... not sure. Can you not just use a comparator?
// NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id >= %d AND id <= %d",1,7];
NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(NSDictionary *dictionary, NSDictionary *bindings) {
NSNumber *idNumber = dictionary[@"id"];
return [idNumber intValue] >= 1 && [idNumber intValue] <= 7;
}];
//呃。。。不确定。你能不能不用比较仪?
//NSPredicate*谓词=[NSPredicate谓词格式:@"id>=%d和id请添加一个异常断点以查找崩溃的行。这是我调用setArray时的最后一个断点…请您显示setArray函数的代码。这是NSMytableArray.hComboData数组中包含的标准iOS方法。太好了!这是最简单的解决方案吗?我想是的。我不认为predicateWithFormat
对于处理对象非常强大。但不是100%确定。不幸的是,我在执行代码时遇到匿名崩溃:这是我的实现:double maxDistance=0.0003;NSPredicate*nearPredicate=[NSPredicate predicateWithBlock:^BOOL(NSDictionary*dictionary,NSDictionary*绑定){NSNumber*idNumber=dictionary[@“Distance”];返回[idNumber doubleValue]combo data (
{
id = 1;
label = "A";
name = '';
},
{
id = 2;
label = "B";
name = '';
},
// erm... not sure. Can you not just use a comparator?
// NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id >= %d AND id <= %d",1,7];
NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(NSDictionary *dictionary, NSDictionary *bindings) {
NSNumber *idNumber = dictionary[@"id"];
return [idNumber intValue] >= 1 && [idNumber intValue] <= 7;
}];