Может ли универсальное приложение iphone / ipad иметь два разных файла xcdatamodel? - PullRequest
0 голосов
/ 13 ноября 2010

Я не хочу проходить миграцию данных с помощью существующего приложения для iphone.Возможно ли, чтобы версия ipad использовала файл xcdatamodel, отличный от версии для iphone?

Я ищу файлы проекта, где они ссылаются на myapp.xcdatamodel, и не могу найти, где он подключен.какие-нибудь предложения?

Где appdelegate это устанавливает?

я вижу:

NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"storeLocations.sqlite"]];

Ответы [ 3 ]

2 голосов
/ 13 ноября 2010

Нет ничего волшебного в постоянном хранилище или любой другой части основных данных. Это просто объекты с методами и свойствами, как и все остальное.

В вашем делегате приложения вам нужно указать более одного, например:

заголовок

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;
} 

и т.д.

1 голос
/ 13 ноября 2010

Модель подключается к вашему делегату приложения.

NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"myApp" 
                                                      ofType:@"momd"];

Я бы предложил против двух моделей, но я также не знаю, как это будет работать Я угадываю условия вокруг объектной модели и постоянного хранилища.

Насколько отличается ваша модель ipad от другой модели, а не другого приложения?

0 голосов
/ 13 ноября 2010

Я помню, как читал в основном документе о том, в каком постоянном хранилище хранится управляемый объект. Смотри NsManagedObjectContext assignObject:toPersistentStore:. Я думаю, это приведет вас в правильном направлении. Возможно, вам потребуется создать несколько постоянных объектов хранилища.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...