私は、MPMediaItemを含むNSMutableDictionaryとそれのキーの文字列を持っています。私は現在、辞書に1,777項目あります。NSMutableDictionaryを使用してforループを最適化する
私は提供された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];
}
}
...
objectForKeyがここに悪い犯人であることを私が発見しました。 stringDistanceメソッドは非常に高速です。 –