2011-01-17 5 views
0

私はこれをかなり長い間働かせようとしてきましたが、多少のオプションがなくなっています。私は "allKeysForObject"を使用して特定のオブジェクトのすべてのキーを選択しようとしています。NSDictionaryのヘルプallKeysForObject:成功なし

結果のキーを選択しようとするテストコードです。辞書の中のオブジェクトは数値であると考えられますが、表示したいときは%@を使って結果を得るのですが、これは数字ではないことを示しています。

私はint、NSString(コード例のように)キーを選択しようとしていて、allObject配列を使用して選択を行いましたが、成功することはできませんでした。私はこれで非常に新しいので、私はオプションが不足しており、助けを求めなければなりません。

NSDictionary *playerResultInTheGame = [readCurrentGameDataFunction finalResultForCurrentGame]; 


NSLog(@"playerResultInTheGame: %@", playerResultInTheGame); 

NSArray *allPlayers = [playerResultInTheGame allKeys]; 
NSArray *allObjects = [playerResultInTheGame allValues]; 

NSLog(@"allObjects: %@", allObjects); 

NSMutableArray *myObjectsArray = [[NSMutableArray alloc] init]; 

allObjects = [allObjects sortedArrayUsingSelector:@selector(compare:)]; 
NSLog(@"allObjects: %@", allObjects); 


NSArray *xxxxx = [playerResultInTheGame allKeysForObject:@"1"]; 
NSLog(@"xxxxx: %@", xxxxx); 

iが得る結果は:

2011-01-17 20:50:34.554 XX [11203:207] playerResultInTheGame:{
Barnspelare = 2。
Vuxenspelare = 1;
}
2011-01-17 20:50:34.554 XX [11203:207] allObjects:(
2、
) 2011-01-17 20:50:34.555 XX [11203:207 ] allObjects:(
1,

現在の言語:auto;現在、Objective-Cの
2011-01-17 20:51:50.086 XX [11203:207] XXXXX:(

2011-01-17 20:52:24.523 XX [11203:207] allPlayers:(
Barnspelare、
Vuxenspelare

+0

あなたの目標が何であるかは不明です。あなたは選手のリストを保存しようとしていますか?あなたが辞書を使って配列の仕事をしているようです。 –

+0

私はプレーヤーの結果を選択して、ゲーム終了後に名前+結果を表示しようとしています。 – PeterK

+0

なぜオールキーも印刷しないのですか? –

答えて

1

さて、あなたは選手のリストを持っているので、もし、キーとして、そしてそのスコアのオブジェクトとして、そのリストがまったく印刷され得るために、あなたがこれを行う可能性があります

#import <Foundation/Foundation.h> 

int main (int argc, const char * argv[]) { 
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"1", @"player1", @"2", @"Player2", @"3", @"player3", nil]; 


    NSLog(@"%@", [dict objectForKey:@"player1"]); 

    NSString *key; 
    for (key in dict) { 
     NSLog(@"Player: %@, Result: %@", key, [dict objectForKey:key]); 
    } 

    [pool drain]; 
    return 0; 
} 
0

キーはおそらく文字列ではなく数字です。 intを使用するのは間違っています。ココアコレクションはintを保存できないためです。 NSNumberを使用する必要があります。したがって、[playerResultInTheGame allKeysForObject:[NSNumber numberWithInt:1]]を使用してください。

関連する問題