2009-09-02 11 views
8

特定のNSManagedObjectについて、特定のNSManagedObjectのキー(属性名)のセットまたは配列を返すメソッドがありますか?私はNSObject & NSManagedObjectのドキュメントで見てみましたが、何も見つかりませんでした。 NSDictionary 'allKeys'のように機能するものは、私が必要とするもの、つまりです。特定のNSManagedObjectのキーのセットまたは配列を取得する方法はありますか?

myArrayOfKeys = [myDict allKeys] 

多数の属性を扱う簡単な方法が必要であると仮定します。一連のキーを反復処理します。

答えて

14

-[NSManagedObject entity]NSEntityDescriptionを返します。これにより、その属性を見つけることができます。特に、属性名が必要な場合は-[NSEntityDescription attributesByName]、各キーは属性名で、各値はNSAttributeDescriptionの辞書になります。

4

私はJamesの助言に基づいて次のように書いています。ジェームズありがとう! (ID)、送信者 {

//! Apple standard template code 
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext]; 
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity]; 
NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context]; 

//! Slowburner addition to view the managedObject's keys 
NSEntityDescription *attDesc = [newManagedObject entity]; 
NSDictionary *attributesByName = [attDesc attributesByName]; 
NSLog(@"Names:%@",[attributesByName allKeys]); 

//! shortcut to avoid whatever problem you're troubleshooting 
return; 
:(空)insertNewObject - Appleのマスター・ディテール・テンプレートプロジェクト から

//

関連する問題