cocoa - 在应用 NSPredicate 时转换 NSDictionary 值?

标签 cocoa nsdictionary nspredicate

我有一个 NSDictionary 对象数组。 这些字典是从 JSON 文件解析的。 NSDictionary 中的所有值对象都是 NSString 类型,其中一个键称为“distanceInMeters”。

我计划使用 NSPredicate 过滤这些数组,所以我是这样开始的:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(distanceInMeters <= %f)", newValue];
NSArray *newArray = [oldArray filteredArrayUsingPredicate:predicate];

我相信,如果“distanceInMeters”键的值是 NSNumber,那么这会起作用,但因为我从 JSON 文件中获取它,所以一切都是 NSString。 上面给出了这个错误:***** -[NSCFNumber length]: unrecognized Selector sent to instance 0x3936f00***

这是有道理的,因为我刚刚尝试将 NSString 视为 NSNumber。

有没有办法在过滤时从字典中转换值,或者可能有一种完全不同的方法来解决这个问题?

希望有人能帮助我:)

最佳答案

试试这个:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(distanceInMeters.floatValue <= %f)", newValue];

关于cocoa - 在应用 NSPredicate 时转换 NSDictionary 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2813881/

相关文章:

swift - 某些 TableView View 未重新加载,因为我的 TableView Delegate 未接收 tableView :viewFor:row: for every row

ios - Swift中如何保持Dictionary中数据的顺序?

iphone - Ios NSDictionary 数组 - 分组值和键

objective-c - 核心数据 NSPredicate "deleted == NO"没有按预期工作

ios - NSPredicate 嵌套子查询编译失败(核心数据)

ios - Swift 中带有列表计数的 Realm 子查询

swift - 按下时 NSButton 变为灰色

objective-c - 如何在采用 NSString 的方法中使用 NSMutableString?

cocoa - 我如何将第三方框架添加到我的 cocoa 项目中

objective-c - NSDictionary 的 NSArray - 简单的初始化语法