一个iphone / ipad通用应用程序有两个不同的xcdatamodel文件? [英] Can a iphone/ipad universal app have two different xcdatamodel files?

查看:119
本文介绍了一个iphone / ipad通用应用程序有两个不同的xcdatamodel文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不想通过现有的iphone应用程序进行数据迁移。可以让ipad版本使用不同的xcdatamodel文件比iphone版本?

I dont want to go through the data migration with an existing iphone app. Is is possible to have the ipad version use a different xcdatamodel file than the iphone version?

我搜索项目文件,它引用myapp.xcdatamodel,并找不到它的地方

I search the project files where it reference myapp.xcdatamodel and cant find where it gets hooked up.

任何建议?

appdelegate在哪里设置?

Where is the appdelegate does it set this?

我看到:

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


推荐答案

永久存储协调器或任何其他部分核心数据。

There's nothing magical about the persistent store coordinator or any other part of core data. They're just objects with methods and properties, like anything else.

在您的应用程式委托中,您只需要指定多个,a la:

In your app delegate you just need to specify more than one, a la:

header

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 / ipad通用应用程序有两个不同的xcdatamodel文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆