1

我想总结可以从我的服务器下载但我的应用程序中尚不存在的所有大小的图像。我有以下包含其他词典的词典:

    "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 必须是什么样子?

最好的解决方案是直接计算总和:)

4

2 回答 2

3

两步:

  1. NSDictionary用 a过滤NSPredicate,得到与所需模式匹配的键数组

    NSArray *matchingKeys = [[d allKeys] filteredArrayUsingPredicate:[NSPredicate  predicateWithFormat:@"name ENDSWITH[cd] @@2x"]];
    
  2. PictureSize使用KVC 集合运算符对值求和

    [[d objectsForKeys:matchingKeys notFoundMarker:NSNull.null] valueForKey:@"@sum.PictureSize"];
    
于 2013-06-30T13:30:41.240 回答
0

您可以allKeys从字典中获取,然后使用ENDSWITH @2x.jpg谓词过滤该数组。然后你可以objectsForKeys:notFoundMarker:用来获取匹配的字典。PictureExists = 0然后使用谓词过滤该数组。然后使用KVC获取@sum.PictureSize.

于 2013-06-30T13:34:22.443 回答