2016-11-11 14 views
0

NSDictionaryを使用してサーバーにデータを送信する必要があります。データは、gender dllという名前で、テキストフィールドから来ます。私はこのような1つの辞書を保存できることを知っています。Objective-C NSDictionaryに辞書を追加する

NSDictionary * = @{@"employee": @"EmpA", 
          @"gender":@"Male", 
          @"pob":@"SF", 
          @"age":@"27", 
          }; 

しかし、私はフォームの手順を繰り返すことができるボタンがあるので、私は複数のデータを追加する必要があります。その後、私は以下の形式に基づいてサーバーにデータ全体を送信します。

"employee": [{ 
    "name": "EmpA", 
    "gender": "Male", 
    "pob": "SF", 
    "age": 27 
    }, { 
    "name": "EmpB", 
    "gender": "Female", 
    "pob": "TX", 
    "age": 36 
    }] 

どのように辞書を動的に追加できますか?あなたは辞書の配列を作成し、「従業員」キーでそれを挿入する必要が

おかげ

+4

複数の辞書を保持するためにNSMutableArrayを使用してください。 – rckoenes

+0

rckoenesがMutableバージョンを使用する必要があると言いました。一般的には、 'NSMutableArray'、' NSMutableDictionary'、 'NSMutableString'、' NSMutableRequest'などをたくさん使っています – Honey

答えて

0

。このような何か動作するはずです:

NSMutableDictionary *employee = [[NSMutableDictionary alloc]init]; 
NSMutableDictionary *emplyeeA = [@{@"name": @"EmpA", @"gender": @"Male", @"pob": @"SF", @"age": @"27"} mutableCopy]; 
NSMutableDictionary *emplyeeB = [@{@"name": @"EmpB", @"gender": @"Female", @"pob": @"TX", @"age": @"36"} mutableCopy]; 
NSMutableArray *tempArray = [[NSMutableArray alloc] init]; 
[tempArray addObject: emplyeeA]; 
[tempArray addObject: emplyeeB]; 
[employee setObject:tempArray forKey:@"employee"]; 
+1

emplyeeA&BのmutableCopyを再度リクエストする必要はありません –

1

は、辞書の配列を使用します

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

for(//loop through the forms) { 
    NSDictionary *emp = @{@"name": @"EmpA", 
         @"gender":@"Male", 
         @"pob":@"SF", 
         @"age":@"27", 
         }; 
    [employees addObject:emp]; 
} 

NSDictionary *payload = @{@"employee": employees}; 

を私は手元にマックを持っていけないので、構文エラーを許します。