NSManagedObject のサブクラスがいくつかあります。それらはすべて、次のようなコードでインスタンス化されます。
MeasurementDescriptor *descriptor = (MeasurementDescriptor *)[NSEntityDescription
insertNewObjectForEntityForName:@"MeasurementDescriptor"
inManagedObjectContext:context];
またはこのように:
Experiment *experiment = (Experiment *)[NSEntityDescription
insertNewObjectForEntityForName:@"Experiment"
inManagedObjectContext:context];
ただし、奇妙なのは(上記のコードから)
NSLog(@" descriptor's class = %@", NSStringFromClass([descriptor class]));
「NSManagedObject」を出力しますが、
NSLog(@" experiment's class = %@", NSStringFromClass([experiment class]));
「実験」を出力します。
これがなぜなのか誰か知っていますか?私の他の NSManagedObject サブクラスとは異なり、MeasurementDescriptor には ivar がありません (Core Data プロパティは含まれません)。ivar を追加しても何も変わりませんでした。同様に、MeasurementDescriptor は、「関係」プロパティを持たない唯一の NSManagedObject サブクラスです。ひょっとして、これがこの異様さの理由なのだろうか…???