2

コードの読みやすさを向上させるために、エンティティの Core Data クラスを生成して、getter と setter を使用してアクセスできるようにしました (個人的にはドット表記を使用します)。setValue: forKey:

たとえば、代わりに[aDateObject setValue:nameString forKey:@"name"];
I will use:aDateObject.name = nameString;


新しい管理対象オブジェクトを管理対象オブジェクト コンテキストに挿入するための同等のアプローチがあるかどうか疑問に思っていました。たとえば、現在DateTimeFlightDataType、次のように新しいものを作成しています。

    aDateObject = (DateTimeFlightDataType*)[NSEntityDescription insertNewObjectForEntityForName:@"DateTimeFlightDataType"
                                                                         inManagedObjectContext:self.managedObjectContext];

DateTimeFlightDataType一貫性を保つために、エンティティ文字列名ではなく、クラス ( ) を使用してこのオブジェクトを作成し、コンテキストに挿入する方法はありますか?

4

2 に答える 2

6

あなたは書ける:

NSString *name = NSStringFromClass([DateTimeFlightDataType class]);
NSManagedObjectContext *ctx = self.managedObjectContext;
aDateObject = [NSEntityDescription insertNewObjectForEntityForName:name 
                                            inManagedObjectContext:ctx];
于 2013-01-06T12:20:45.117 に答える
1

MO の作成には常にエンティティが必要であり、これらは常に文字列によって定義されます。

一般的なアプローチは、文字列をハードコーディングする必要がなく、MO のクラスから派生できるように何らかの方法で作成することです。NSStringFromClass

于 2013-01-06T11:07:10.887 に答える