是否可以在同一个项目中提供两个xcdatamodeld核心数据并根据条件加载每个数据?
我有BTPModel.xcdatamodeld和FTModel.xcdatamodeld
根据评论,下面的这一行是这样的:
NSManagedObjectModel model = [NSManagedObjectModel mergedModelFromBundles:nil];
// looks up all models in the specified bundles and merges them; if
nil is specified as argument,uses the main bundle
我可以这样做吗? (伪代码)
if (config == @"FT") { model = [NSManagedObjectModel load:@"FTModel.xcdatamodeld"]; } else { model = [NSManagedObjectModel load:@"BPTModel.xcdatamodeld"]; }
更新:
我现在试过这个
NSURL *url = [[NSBundle mainBundle] URLForResource:@"F11iModel" withExtension:@"xcdatamodeld"];
没有运气.网址仍为空.
UPDATE
扩展是妈妈.现在它有效!
NSURL *url = [[NSBundle mainBundle] URLForResource:@"F11iModel" withExtension:@"momd"];
解决方法
当然可以.只需注意以下几点:
某些加载方法不能使用initWithContentsOfURL来加载特定模型.您将获得主包的URLForResource的URL.您可以根据配置信息将不同的资源名称传递给它.
我建议您也使用不同的持久性存储来确保没有尝试使用错误的模型打开存储(这将使您的应用程序崩溃).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。