2011-11-07 3 views
2

私のデータをローカルデータベースに保存するためのJSON WebサービスにNSDictionaryをポストしています。どのようなObjective CのクラスをNSDictionariesに変換する最良の方法は?目的NSDictionaryへのCのクラス

これは私の現在のコードですが、より一般的なバージョンを書くことを除いて、これは最善の方法ですか?そして、<obj/runtime.h>を含め、リンゴでOKですか?

- (NSDictionary*)dictionaryFromContact { 

     Class contactClass = [self class]; 
     u_int count; 

     objc_property_t *properties = class_copyPropertyList(contactClass, &count); 

     NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:count]; 

     for (int i = 0; i<count; i++) { 
      NSString *str = [NSString stringWithCString:property_getName(properties[i]) 
               encoding:NSUTF8StringEncoding]; 

      //Set the dicationary values from our properties 
      [dict setValue:[self valueForKey:str] forKey:str]; 
     } 
     free(properties); 

     return [dict autorelease]; 
    } 

ありがとうございます!

答えて

3

class_copyPropertyListは正当です。ショートカットはdictionaryWithValuesForKeys:と考えられます。

ローカルデータベースにCore Dataを使用する場合は、attributesByNamerelationshipsByNameまたはpropertiesByNameを使用する必要があります。

0

RestKitObject Mapping機能をご覧ください。必要な機能があります。

+0

Restkitは実装が非常に難しいです!それに多くの問題があります。最終的にv0.10を稼働させた後、v0.20へのアップグレードは非常に苦痛で、私はそれを落として自分のパーサを作成していました。私はRestKitをお勧めしません。 – Khattab

関連する問題