0

このjsonデータを順番に整理しようとしています...

{"message":["Untitled1b","Untitled2b","Untitled3b"],"name":["Untitled1a","Untitled2a","Untitled3a"]}

...このように赤い...

NSString *fileContent = [[NSString alloc] initWithContentsOfFile:getImagePath2];  

SBJsonParser *parser = [[SBJsonParser alloc] init];

NSDictionary *data = (NSDictionary *) [parser objectWithString:fileContent error:nil];  

// getting the data from inside of "menu"  

//NSString *message = (NSString *) [data objectForKey:@"message"];
 //NSString *name = (NSString *) [data objectForKey:@"name"];

NSArray *messagearray = [data objectForKey:@"message"];
NSArray *namearray    = [data objectForKey:@"name"];


NSDictionary* Dictionary = [NSDictionary dictionaryWithObjects:messagearray forKeys:namearray];

f = namearray.count;
NSLog(@"happt = %i", f);

//namegroup.text = [NSString stringWithFormat:@"%@  %@",name, message];

g= 0;

do{

    NSArray *allKeys = [Dictionary allKeys];
    for (int i = 0; i < [allKeys count]; i++) {
        NSString *key = [allKeys objectAtIndex:i];
        NSObject *obj = [Dictionary objectForKey:key];
        // do something 

ご覧のとおり、json ファイルのメッセージと名前 (データのペア) は正しい順序 (1a、1b...) になっています。データのペアごとに 2 つのテキスト ビューを作成し、データを表示します。ペアは正しく表示されますが、混同されています。つまり、JSON ファイルの順序で表示するようにしたいと思います (最初に 1a、1b、次に 2a、2b、次に 3a、3b...、2a、2b、次に 1a、1b、次に 3a、3b... ではありません)。 )

私はこれを使用しようとしました:

NSSortDescriptor *dateSortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"date"     ascending:NO selector:@selector(compare:)] autorelease];
[list sortUsingDescriptors:[NSArray arrayWithObjects:dateSortDescriptor, nil]];

...しかし、それはうまくいきませんでした!! 助けてください!!

4

1 に答える 1

0

NSDictionaryオブジェクトは順序付けされていません。キーの順序は通常、キーを検索するための最も効率的な方法によって決定されます。これは、キーが辞書に追加されたときと同じ順序である可能性は低いです。いずれの場合も、NSDictionary通常、キーの順序は希望する順序ではありません。キーを並べ替える場合は、次を使用できます。

NSDictionary *dict = /* fill your dictionary */;

NSArray *allKeys = [dict allKeys];

NSArray *sortedKeys = [allKeys sortedArrayUsingSelector:@selector(compare:)];

for (NSString *key in sortedKeys)
{
    id value = [dict objectForKey:key];

    // do something with "key" and "value" in sorted order of "key"
}
于 2012-05-13T21:02:44.977 に答える