我有一个辅助类,用于分发UIManagedDocument的共享实例。其思想是用户请求特定磁盘上的UIManagedDocument共享实例。在这种情况下,它是一个核心数据存储库。如果用户请求位于不同路径的核心数据存储库,则我希望为该文件分发UIManagedDocument的实例。
我的问题是:当文件更改时,创建新的UIManagedDocument实例并将其分配给静态变量是否可以?例如:
基本上我要做的就是分发一个UIManagedDocument的实例,这样在有多个写入核心数据存储器的情况下,我不必不断地保持变化同步。然而,由于磁盘上有多个核心数据存储器,我不能每次都分发相同的静态变量。
我的问题是:当文件更改时,创建新的UIManagedDocument实例并将其分配给静态变量是否可以?例如:
+ (UIManagedDocument *)sharedManagedDocumentForFile:(NSString *)fileName
{
static UIManagedDocument *sharedDocument = nil;
NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
url = [url URLByAppendingPathComponent:fileName];
// url is "<Documents Directory>/<vacationName>"
// Create the shared instance lazily upon the first request.
if (sharedDocument == nil) {
sharedDocument = [[UIManagedDocument alloc] initWithFileURL:url];
}
if (sharedDocument.fileURL != url) {
UIManagedDocument *newDocument = [[UIManagedDocument alloc] initWithFileURL:url];
sharedDocument = newDocument;
}
return sharedDocument;
}
基本上我要做的就是分发一个UIManagedDocument的实例,这样在有多个写入核心数据存储器的情况下,我不必不断地保持变化同步。然而,由于磁盘上有多个核心数据存储器,我不能每次都分发相同的静态变量。
有什么想法吗?我甚至不知道如何解决这个设计问题... 感谢任何帮助。
谢谢 - Jake