我有一个NSMutableDictionary,其中包含MPMediaItem及其密钥的标题字符串。我的词典中目前有1,777个项目。

我正在遍历字典,以查找与提供的NSString的模糊匹配。我如何加快速度?每次运行大约需要6秒钟。

我会自己循环

@autoreleasepool {
        float currentFoundValue = 1000.0;
        NSMutableArray *test;
        MPMediaItemCollection *collection;
        float match;
        for(id key in artistDictionary)
        {
            NSString *thisArtist = key;
            int suppliedCount = [stringValue length];
            int keyCount = [thisArtist length];
            if(suppliedCount > keyCount)
            {
                match = [StringDistance stringDistance:thisArtist :stringValue];
            } else {
                match = [StringDistance stringDistance:stringValue :thisArtist];
            }
            if(match < currentFoundValue)
            {
                currentFoundValue = match;
                test = [artistDictionary objectForKey:thisArtist];
                collection = [[MPMediaItemCollection alloc] initWithItems:test];
            }
        }


...

最佳答案

请参见-enumerateKeysAndObjectsWithOptions:usingBlock:,并使用NSEnumerationConcurrent选项。

10-08 06:11