获取UIManagedDocument的URL

时间:2012-06-15 13:43:55

标签: objective-c ios core-data uimanageddocument

目前,我确定文档目录并检索其中的URL,保存到数组属性:

// Returns an array of all the Vacations on file.
- (void)findVacationsOnFile
{
    self.vacationURLs = [[NSArray alloc] init];

    // Identify the documents folder URL.
    NSFileManager *fileManager = [[NSFileManager alloc] init];
    NSError *errorForURLs      = nil;
    NSURL *documentsURL        = [fileManager URLForDirectory:NSDocumentDirectory
                                                     inDomain:NSUserDomainMask
                                            appropriateForURL:nil
                                                       create:NO
                                                        error:&errorForURLs];
    if (documentsURL == nil) {
        NSLog(@"Could not access documents directory\n%@", [errorForURLs localizedDescription]);
    } else {

        // Retrieve the vacation stores on file.
        NSArray *keys = [NSArray arrayWithObjects:NSURLLocalizedNameKey, nil];
        self.vacationURLs = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:documentsURL
                                                          includingPropertiesForKeys:keys
                                                                             options:NSDirectoryEnumerationSkipsHiddenFiles
                                                                               error:nil];
    }
}

当我后来想要UIMangedDocument的URL时,我引用了数组。但我怀疑UIManagedDocument已经知道它的URL。我发现最接近的是persistentStoreName,但这是一个用于设置持久存储名称的方法。任何指导意见。

1 个答案:

答案 0 :(得分:1)

是的UIManagedDocumentUIDocument的具体子类,必须使用URL初始化。 URL存储在属性fileURL(继承自UIDocument)中,可以像这样访问:

NSURL* url = myUIManagedDocument.fileURL;