NSPredicate 上的字典数组 iOS
Posted
技术标签:
【中文标题】NSPredicate 上的字典数组 iOS【英文标题】:NSPredicate on array of dictionaries iOS 【发布时间】:2014-08-07 10:51:09 【问题描述】:如何根据 key
另一个字典(位于数组内)内的字典的 NSPredicate
过滤字典数组,这是我的回应。
[
"_id" =
"$id" = 53e28497e37c70d83021c830;
;
access = public;
,
"_id" =
"$id" = 53e28497e37c70d83021c839;
;
access = public;
]
现在我需要根据键 $id
过滤这个数组。我尝试了不同的谓词格式来过滤这个数组但没有运气。我怎样才能得到匹配$id
的字典对象。
【问题讨论】:
【参考方案1】:试试这样,
NSArray *filtered = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self.id.%K == '1'",@"$id"]];
【讨论】:
感谢您的回答,但在NSArray* res = [array filteredArrayUsingPredicate:pred];
谓词处崩溃的应用程序是_id.$id == "53e28497e37c70d83021c839"
这里有文字字符串的问题,用任何字符串更改 $id 键并检查它是否有效
您的回答[NSPredicate predicateWithFormat:@"self.%K.%K == '53e28497e37c70d83021c830'",@"_id",@"$id"]
中的小编辑对我有用。接受并投票赞成。谢谢。【参考方案2】:
NSString* filter = @"53e28497e37c70d83021c839";
NSArray* res = [originArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"%K LIKE[c] %@", @"_id.$id", filter]];
【讨论】:
以上是关于NSPredicate 上的字典数组 iOS的主要内容,如果未能解决你的问题,请参考以下文章