我正试图想出一种方法,我可以在使用时将数据预加载到核心数据中UIManagedDocument
.到目前为止,我的尝试是使用此代码在"Loader"应用程序中创建文档.
NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory
inDomains:NSUserDomainMask] lastObject];
url = [url URLByAppendingPathComponent:@"Default Database"];
if(![[NSFileManager defaultManager] fileExistsAtPath:[self.document.fileURL path]]){
[self.document saveToURL:self.document.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success){
if(success)[self loadDataIntoDocument];
}];
}
Run Code Online (Sandbox Code Playgroud)
然后将persistentStore文件从在模拟器目录中创建的'documents'目录复制到Xcode中的资源部分,用于将使用加载的数据库的主应用程序.
我的问题是我无法弄清楚如何从应用程序包中复制该文档并将其成功用作文档.
我已经尝试从应用程序包中按原样复制文档目录,并尝试将其作为文档访问,该文档给出了UIManagedDocument
只能访问文件包的错误.我尝试在主应用程序中创建另一个新文档,并将bundle中的persistentStore复制到文档中创建的具有相同错误的文件中.而且我尝试过使用UIManagedDocument
的-(BOOL)loadFromContents:ofType:error:
方法..我甚至不确定这是我应该使用的方法.
有没有人知道这通常是怎么做的?谢谢!
我正在编写一个实现可观察模式(而不是接口)的类,我正在考虑复制构造函数是否也应该复制监听器.
一方面,复制构造函数应该创建一个尽可能接近原始实例的实例,以便可以在显示上下文中交换它.
另一方面,这将假设听众可以应对这种事情.
有什么想法吗?有没有最佳做法?