永久存儲協調器或核心數據的任何其他部分沒有什麼不可思議的。它們只是具有方法和屬性的對象,就像其他任何東西一樣。
在你的應用程序代理,你只需要指定一個以上的,一拉:
頭
NSManagedObjectContext *managedObjectContext;
NSManagedObjectModel *managedObjectModel;
NSPersistentStoreCoordinator *persistentStoreCoordinator;
NSManagedObjectContext *managedObjectContext2;
NSManagedObjectModel *managedObjectModel2;
NSPersistentStoreCoordinator *persistentStoreCoordinator2;
實施
- (NSManagedObjectContext *)managedObjectContext {
if (managedObjectContext != nil) {
return managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return managedObjectContext;
}
和
- (NSManagedObjectContext *)managedObjectContext2 {
if (managedObjectContext2 != nil) {
return managedObjectContext2;
}
NSPersistentStoreCoordinator *coordinator2 = [self persistentStoreCoordinator2];
if (coordinator2 != nil) {
managedObjectContext2 = [[NSManagedObjectContext alloc] init];
[managedObjectContext2 setPersistentStoreCoordinator:coordinator2];
}
return managedObjectContext2;
}
等
好的,但我不清楚的是如何告訴它使用哪個版本:iphone.xcdatamodel和ipad.xcdatamodel在代碼中,我定義了這個? – Arcadian 2010-11-13 06:05:54
在應用程序委託的託管對象模型方法中。 modelPath指定它,它表示pathForResource:@「iphone」(或任何它所稱的)。在你的第二個MOM中,你將擁有pathForResource:@「ipad」(或者任何其他的被稱爲)。 – 2010-11-13 06:24:47