1
我有幾個NSManagedObject的子類。他們都實例化的代碼是這樣的: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]));
打印出'實驗'。
有誰知道這是爲什麼? MeasurementDescriptor與我的其他NSManagedObject子類不同,它沒有ivars(不包括其核心數據屬性)。添加伊娃並沒有改變任何東西。同樣,MeasurementDescriptor是唯一沒有「關係」屬性的NSManagedObject子類。也許這就解釋了這種奇怪...?
我同意你的解釋,但是你列出的案例都不適用於我的例子。 MeasurementDescriptor的實體類是MeasurementDescriptor,源文件包含在項目中。事實上,這就是NSLog系列提醒我注意這個問題的地方。可能是在從模型A(其中沒有MeasurementDescriptor)遷移到僅存在於一個模型中的模型B(其中引入了MeasurementDescriptor)中的實體被視爲NSManagedObjects的過程中。雖然我不確定爲什麼會這樣。 – westsider 2010-10-18 18:02:52