【发布时间】:2012-01-03 22:59:01
【问题描述】:
我将图像缓存到一个目录 (/Library/Caches/ImageCache/)。当目录超过一定大小时,我想删除目录中最旧的文件。为了完成这个任务,我使用 NSFileManager 来检索目录内容。然后我尝试按日期对该数组进行排序并删除最旧的对象。
我的问题是,当我尝试通过键 NSURLCreationDateKey 对数组进行排序时,我的程序崩溃了。
NSFileManager *defaultFM = [NSFileManager defaultManager];
NSArray *keys = [NSArray arrayWithObjects:NSURLNameKey, NSURLCreationDateKey, nil];
NSURL *cacheDirectory = [self photoCacheDirectory]; // method that returns cache URL
NSArray *cacheContents = [defaultFM contentsOfDirectoryAtURL:cacheDirectory
includingPropertiesForKeys:keys
options:NSDirectoryEnumerationSkipsSubdirectoryDescendants
error:nil];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:NSURLCreationDateKey ascending:YES];
NSArray *sortedArray = [cacheContents sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
程序在最后一行崩溃。有错误:
* 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:此类与键 NSURLCreationDateKey 的键值编码不兼容。”
【问题讨论】:
标签: iphone objective-c ios ios5