2012-02-19 11 views
4

にNSDictionaryのからNSObjectの作成私は「のために...で、」ループは、Objective-Cの

私はそのようNSDictionaryのを持っているを使用して、私のオブジェクトに辞書から各項目を割り当てたい:

{"user_id" : "1", "user_name" : "John"} 

そして、私は、変数とNSObjectの持っている:

NSString *user_id; 
NSString *user_name 

でループ内で、私はNSObjectの

で私のNSDictionaryのから各項目を割り当てるために
for (NSString *param in userDictionary) { 

} 

どうすればいいですか?

おかげで、

+0

を書くことができ、あなたがプロパティ 'user_id'と' user_name'と 'NSObject'の_subclass_を持っている意味しますか? – Costique

答えて

14

は、NSObjectクラスのメソッドを見てください:たとえば

- (void)setValue:(id)value forKey:(NSString *)key; 

[userDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){ 
    [myObject setValue:obj forKey:(NSString *)key]; 
}]; 
+0

パーフェクトありがとう – alexmngn

+2

if([obj respondsToSelector:NSSelectorFromString(key)]) 'code' if' code'の前にチェックすることができます –

+0

素晴らしいです。ありがとう! – kevinejohn

1

私はこれを自動化する小さなライブラリを書いて、それはまたの変換を処理します日付 https://github.com/aryaxt/OCMapper

すべてのキーがプロパティ名と同じである限り、NSDictionaryをNSObjectに直接変換します。

Customer *customer = [Customer objectFromDictionary:customerDictionary]; 
NSArray *customers = [Customer objectFromDictionary:listOfCustomersDictionary]; 

キーとプロパティ名が同じでない場合は、マッピング

[mappingProvider mapFromDictionaryKey:@"dob" toPropertyKey:@"dateOfBearth" forClass:[Customer class]]; 
+0

素晴らしいライブラリー、私はマントルのようないくつかのものを使っていましたが、あなたはとても良いです。ありがとう! – Resty

関連する問題