특정 유지 관리 작업이 "결국"실행되도록하고 싶습니다. 예를 들어 캐시에서 일부 리소스를 더 이상 사용할 수 없다는 것을 감지하면 다음을 호출 할 수 있습니다.Objective-C에서 연기/지연 호출을 어떻게 통합 할 수 있습니까?
[self performSelector : @selector (cleanupCache) withObject : nil afterDelay : 0.5];
그러나이 위치를 감지 할 수있는 곳이 많으며 cleanupCache를 계속 호출하고 싶지 않을 수 있습니다. CleanupCache에 대한 여러 호출을 통합하여 cleanupCache에 대한 호출을 주기적으로 하나만 얻고 싶습니다.
내가 여기에 대해 생각해 낸 것이 있습니다. 이것이 최선의 방법입니까?
[NSObject cancelPreviousPerformRequestsWithTarget : 셀렉터 : @selector (cleanupCache) object : nil]; [self performSelector : @selector (cleanupCache) withObject : nil afterDelay : 0.5];
이 대답을 받아들이는 것은 고통스러운 진리입니다. 결국 원래의 질문에서 취소/수행 순서를 수행하기 위해 캐시 클래스에 대한 지원을 추가했습니다. – thrusty