이미지를 쓰거나 읽어야하는 파일 캐시가 있습니다.대기열에있는 모든 나머지 요청에 대한 GCD 대기열 정리.
백그라운드에서 수행해야하는 파일 시스템의 모든 작업. 파일 저장이 목적을 위해
내가 사용
dispatch_barrier_async([AxPanoramaDataManager sharedInstance].dataManagerQueue, ^{
[data writeToFile:tileFilePathName atomically:YES];
});
그리고 읽기
:__block UIImage *tileImage = nil;
dispatch_sync([AxPanoramaDataManager sharedInstance].dataManagerQueue, ^{
tileImage = [[UIImage imageWithContentsOfFile:tileFilePathName] retain];
dispatch_async(dispatch_get_main_queue(), ^{
completion (tileCoordValue, side, tileImage, error);
[tileImage release];
});
});
모든 현금 폴더에있는 파일의 큰 금액이 잘 작동하지만 가끔 현금을 청소해야합니다. 모든 큐 블록을 취소하고 폴더를 정리하여 블록을 수행해야합니다.
방법의 첫 번째 내 구현은 다음과 같습니다
+ (void) cleanCash
{
NSString *folderPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingString:@"cash"];
dispatch_sync([AxPanoramaDataManager sharedInstance].dataManagerQueue, ^{
NSError *error = nil;
[[NSFileManager defaultManager] removeItemAtPath:folderPath error:&error];
NSParameterAssert(error == nil);
}
});
}
하지만 큐의 모든 대기 작업을 취소하지 않는의 때문에 나는 그것과 함께 많은 문제가있다. 나는 SO에서 솔루션을 찾으려고하지만 불행히도이를 구현할 수는 없습니다. 아무도 이것으로 나를 도울 수 있습니까?
'현금'대신 '캐시'를 사용 하시겠습니까? – Koen
예, En은 제 모국어가 아닙니다 – ShurupuS
걱정하지 마세요. 내 것이 아닙니다. 나는 재미있는 오자라고 생각했습니다! – Koen