你似乎是在設計你的模式,如果它是一個數據庫。請不要這樣做。 CoreData的工作原理並不是必要的也是不對的。你應該擺脫你的ID字段。簡單地聲明在模型中的適當的關係,然後將所有你必須做的就是對員工的部門是:
myEmployee.departmentName
抓取所有的員工只會做這樣的:
NSManagedObjectContext *moc = [self managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"Employee" inManagedObjectContext:moc];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
initWithKey:@"firstName" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];
NSError *error = nil;
NSArray *array = [moc executeFetchRequest:request error:&error];
if (array == nil)
{
// Deal with error...
}
這是從文檔中提取的。如果您正在使用ARC,請相應地更改代碼。
如果我需要將我的coredata備份到「雲」而不是重新啓動它,那麼情況如何?你如何將coredata數據庫與關係巧妙地序列化?我可以很容易地看到如何使用外鍵序列化我當前的coredata數據庫到xml/JSON。 – Matt
此外,這實際上只是一個.net應用程序的轉換。因此,實施新的關係設置更有益於工作。 – Matt
在這種情況下,您可能需要考慮CoreData是否適合您。將SQlite與FMDB等包裝一起使用可能更合適。 – sosborn