我想总结所有可以从我的服务器下载但尚未存在于我的应用程序中的图像。我有以下包含其他词典的词典:
"iPhone_small_991.jpg" = {
PictureExists = 1;
PictureSize = 2406;
};
"iPhone_small_992.jpg" = {
PictureExists = 0;
PictureSize = 2384;
};
"iPhone_small_993@2x.jpg" = {
PictureExists = 1;
PictureSize = 2642;
};
如果我想得到一个与某个关键模式匹配的所有对象的数组(ENDSWITH @ 2x.jpg和PictureExists = 0),NSPredicate必须如何?
最佳解决方案是直接计算总和:)
答案 0 :(得分:3)
两个步骤:
使用NSDictionary
过滤NSPredicate
,获取与所需模式匹配的键数组
NSArray *matchingKeys = [[d allKeys] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"name ENDSWITH[cd] @@2x"]];
PictureSize
个值
[[d objectsForKeys:matchingKeys notFoundMarker:NSNull.null] valueForKey:@"@sum.PictureSize"];
答案 1 :(得分:0)
您可以从字典中获取allKeys
,然后使用ENDSWITH @2x.jpg
谓词过滤该数组。然后,您可以使用objectsForKeys:notFoundMarker:
来获取匹配的词典。然后使用PictureExists = 0
谓词过滤该数组。然后使用KVC
获取@sum.PictureSize
。