NSNumbers を持つ NSMutableDictionary があります。セットの構築が終了したら、現在保存されている値自体を使用してすべての値を再計算する必要があります。現在、高速な列挙と新しい NSMutableSet への格納を使用していますが、Objective C の経験がなく、これを行うためのより効率的な方法が必要です。
for (id key in temp_target_results)
{
formula_score = MyFormula([[temp_target_results objectForKey:key] doubleValue]);
[target_results setObject:[NSNumber numberWithDouble:formula_score] forKey:key];
}
最後に、値で並べ替えています (そのため、NSMutableSet を使用しています)。