1

次の形式で辞書に値を保存する必要があります。

{ "UserId": 123,
  "UserType": "blue", 
    "UserActs": [{
           "ActId": 3,
           "Time": 1
       }, {
           "ActId": 1,
           "Time": 6
       }]
    }

初期値用の辞書と UserActs 用のネストされた辞書が必要になることはわかっていますが、同じキー「ActId」と「Time」の個別の値を保存する方法がわかりません。この形式に従って辞書に追加するにはどうすればよいですか?

4

2 に答える 2

0

これは、そのディクショナリを作成する古い、長い道のりの方法です (Objective-C リテラルを使用する新しい構文がありますが、それらは変更可能ではないため、この方法を選択しました)。

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:[NSNumber numberWithInt:123] forKey:@"UserId"];
[dict setObject:@"blue" forKey:@"UserType"];

NSMutableArray *acts = [[NSMutableArray alloc] init];
[acts addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:
    [NSNumber numberWithInt:3], @"ActId",
    [NSNumber numberWithInt:1], @"Time",
    nil]];
[acts addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:
    [NSNumber numberWithInt:1], @"ActId",
    [NSNumber numberWithInt:6], @"Time",
    nil]];
[dict setObject:acts forKey:@"UserActs"];
于 2013-02-25T16:20:28.440 に答える
0

配列と辞書の短縮形を使用することもできます

NSDictionary * dictionary = @{ @"UserId": @123,
  @"UserType": @"blue", 
    @"UserActs": @[@{
           @"ActId": @3,
           @"Time": @1
       }, @{
           @"ActId": @1,
           @"Time": @6
       }]
    };
于 2013-02-25T16:21:24.710 に答える