我對coredata很新。我的目標是將數據寫入一個函數內的不同實體。我已經在我的應用程序委託中初始化coredata並將其傳遞給我的viewcontroller。在我的viewController中,我想決定情境依賴,應該使用哪個實體。所以我編輯fetchedResultsController-方法的像這樣的代碼:如何在一個方法內的兩個不同實體中插入數據?
-(NSFetchedResultsController *)fetchedResultsControllerForEntityWithString:(NSString*)theEntityString {
...
NSEntityDescription *entity = [NSEntityDescription entityForName:theEntityString inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
...
}
第二種方法我改變是saveContext:
-(void)saveContextForEntityWithString:(NSString*)theEntityString {
NSManagedObjectContext *contex = [self fetchedResultsControllerForEntityWithString:theEntityString managedObjectContext];
...
}
對於插入新的數據,我寫一個新的方法:
-(void)insertEntityForString:(NSString*)theEntityName {
NSManagedObjectContext *context = [[self fetchedResultsControllerForEntityWithString:theEntityName] managedObjectContext];
NSEntityDescription *entity = [[[self fetchedResultsControllerForEntityWithString:theEntityName] fetchRequest] entity];
NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
if ([newManagedObject isKindOfClass:[myClass1 class]]) {
newManagedObject.testValue:[NSDate date];
} else if ([newManagedObject isKindOfClass:[myClass2 class]]) {
}
}
不幸的是,這種方法不會成功。 Xcode不知道testValue是否存在,並引發錯誤。
希望你能幫助我更好地理解coredata應該如何正確設置。
非常感謝你的幫助。
哇。感謝您的好解釋!我有一個應用程序「分離」爲兩部分:在停車場停車並在外面停車。所以我爲每個部分定義了一個實體:http://img64.imageshack.us/i/bildschirmfoto20110227u.png/所以你認爲我可以用另一種方式設計我的模型嗎?正如我所說我對核心數據真的很陌生,並希望儘可能地學習:) – rdesign 2011-02-27 12:09:27