3

我有一个NSURL本地存储文件的列表。我想显示创建日期,所以我检索它如下:

 for (NSURL * file in sortedFileList){
        NSDate *date = nil;
        NSError * error = nil;
        [file getResourceValue:&date forKey:NSURLCreationDateKey error:&error];
        if (error)
        {
            NSLog(@"error getting date: %@", error);
            continue;
        }
        if (!date)
        {
            NSLog(@"Empty date.... skipping file");
            continue;
        }
}

当我在 iOS 5 模拟器或 iOS 6 上运行它时,它可以正常工作并显示日期。但是,当我在 iOS 4.3 模拟器上运行它时,它会为我nil提供所有文件的日期和日志“空日期......”消息。

根据文档NSURLCreationDateKey可从 iOS 4 获得,那么发生了什么?

4

1 回答 1

4

事实证明,该getResourceValue: forKey:方法仅适用于 iOS 5+。

在 iOS 5.0 及更高版本中可用。(符号存在于 iOS 4 中,但不执行任何操作。)

我还不明白为什么NSURLCreationDateKey它可用于 iOS 4,因为我找不到任何方法以另一种方式从 NSURl 获取日期。

目前解决方案:

NSDate *date = [[[NSFileManager defaultManager] attributesOfItemAtPath:[url path] 
    error:nil] objectForKey:NSFileCreationDate];
于 2013-04-28T14:22:19.893 回答