我有一个助手类,分发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只有一个实例同步。但是,由于磁盘上有多个核心数据存储,我不能每次都分配相同的静态变量。
任何想法?我绝对坚持甚至如何解决这个设计问题......任何帮助表示赞赏。
谢谢 - 杰克
我相信这是一个强制性的句子。 – PengOne 2012-01-17 23:16:43
@JV V我觉得他在开玩笑......大声笑 – bschultz 2012-01-17 23:19:09
你说'ok'和'legal'是什么意思? – occulus 2012-01-17 23:30:29