使用谓词将 Json 数组中的值与双精度值进行比较
Using a predicate to compare a value from a Json Array with a double
我正在尝试用双精度过滤 json 数组的字典字段。只需通过:
double maxDistance=0.0003;
NSPredicate* nearPredicate=[NSPredicate predicateWithFormat:@"Distance < %ld", maxDistance];
[jsonCloudArray filterUsingPredicate:nearPredicate];
产生崩溃:
-[__NSCFNumber length]: unrecognized selector sent to instance 0x15e0398f0
如果我改用我在 Whosebug 上找到的示例代码:
NSLog(@"arrival %@", jsonCloudArray);
NSPredicate *nearPredicate = [NSPredicate predicateWithBlock:^BOOL(NSDictionary *dictionary, NSDictionary *bindings) {
NSNumber *idNumber = dictionary[@"Distance"];
BOOL result= [idNumber doubleValue] < maxDistance;
NSLog(@"processing distance %f", [idNumber doubleValue]);
return result;
}];
[jsonCloudArray filterUsingPredicate:nearPredicate];
我在处理完数组的所有元素后发生静默崩溃,正如我通过比较两个 NSLog 所看到的那样。
可能是什么问题?
有趣的是,使用 filteredArrayUsingPredicate 如:
double maxDistance=0.0003;
NSLog(@"arriva %@", jsonCloudArray);
NSPredicate *nearPredicate = [NSPredicate predicateWithBlock:^BOOL(NSDictionary *dictionary, NSDictionary *bindings) {
NSNumber *idNumber = dictionary[@"Distance"];
BOOL result= [idNumber doubleValue] < maxDistance;
NSLog(@"processing distance %f", [idNumber doubleValue]);
return result;
}];
jsonCloudArray = [[jsonCloudArray filteredArrayUsingPredicate:nearPredicate] mutableCopy];
我再也没有崩溃了。
我正在尝试用双精度过滤 json 数组的字典字段。只需通过:
double maxDistance=0.0003;
NSPredicate* nearPredicate=[NSPredicate predicateWithFormat:@"Distance < %ld", maxDistance];
[jsonCloudArray filterUsingPredicate:nearPredicate];
产生崩溃:
-[__NSCFNumber length]: unrecognized selector sent to instance 0x15e0398f0
如果我改用我在 Whosebug 上找到的示例代码:
NSLog(@"arrival %@", jsonCloudArray);
NSPredicate *nearPredicate = [NSPredicate predicateWithBlock:^BOOL(NSDictionary *dictionary, NSDictionary *bindings) {
NSNumber *idNumber = dictionary[@"Distance"];
BOOL result= [idNumber doubleValue] < maxDistance;
NSLog(@"processing distance %f", [idNumber doubleValue]);
return result;
}];
[jsonCloudArray filterUsingPredicate:nearPredicate];
我在处理完数组的所有元素后发生静默崩溃,正如我通过比较两个 NSLog 所看到的那样。
可能是什么问题?
有趣的是,使用 filteredArrayUsingPredicate 如:
double maxDistance=0.0003;
NSLog(@"arriva %@", jsonCloudArray);
NSPredicate *nearPredicate = [NSPredicate predicateWithBlock:^BOOL(NSDictionary *dictionary, NSDictionary *bindings) {
NSNumber *idNumber = dictionary[@"Distance"];
BOOL result= [idNumber doubleValue] < maxDistance;
NSLog(@"processing distance %f", [idNumber doubleValue]);
return result;
}];
jsonCloudArray = [[jsonCloudArray filteredArrayUsingPredicate:nearPredicate] mutableCopy];
我再也没有崩溃了。