내 이미지를 디렉토리 (/ Library/Caches/ImageCache /)에 저장합니다. 디렉토리가 특정 크기를 초과하면 디렉토리에서 가장 오래된 파일을 삭제하고 싶습니다. 이 작업을 수행하기 위해 NSFileManager를 사용하여 디렉터리 내용을 검색합니다. 그런 다음이 배열을 날짜별로 정렬하고 가장 오래된 개체를 삭제하려고합니다.NSURL 객체 배열을 생성 날짜순으로 정렬
내 문제는 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위한 키값이 아닙니다.'
제안 학장님께 감사드립니다. 그래도 여전히 같은 오류가 발생합니다. –
정확히 같으면 안됩니다. '이 클래스는 키 파일에 대해 키 값 코딩을 준수하지 않습니다.'- 어쨌든 다른 솔루션에 대한 내 편집을 참조하십시오. – deanWombourne
좋아, 바보 - 나는 당신이 열거자를 사용하고 있다고 가정했지만 질문을 보았을 때, 당신은 분명히 아닙니다. 나는 바보 야! 당신이 원하는 것을하는데 도움이되는 비교기 블록에 대한 편집 된 편집을보십시오! – deanWombourne