이것은 autorelease, Cocoa threads 및 NSOperationQueue에 대한 일반적인 질문입니다.NSOperationQueue를 사용하여 별도의 스레드에 자동 렌더링 된 객체 만들기
NSOperationQueue를 사용하여 특정 API 호출을 수행하고 결과를 구문 분석하여 주 스레드로 리턴합니다. NSOperationQueue는 새 스레드에 대해 이러한 작업을 수행합니다. 새 스레드가 시작될 때마다 올바르게 이해하면 스레드가 완료 될 때 해제되는이 스레드 주위에 자동 자동 릴리스 풀이 생성됩니다.
여기에 문제가되는 경우가 있습니다. NSOperationQueue 할당 된 NSArray를 전달합니다. 작업을 수행하는 동안 어레이는 자동으로 생성 된 많은 객체로 채워집니다. 그런 다음 배열은 주 스레드로 다시 반환됩니다.
autoreleased 오브젝트가 스레드에서 작성되었으므로 할당 해제됩니까? 그들이 NSArray에 추가 된 후 ref 인수가 1이 아니 어서는 안된다는 것을 이해합니다.
누가이 개체를 소유하고 있습니까? autorelease가 마술처럼 메인 스레드 자동 풀 풀에 책임을 넘겼습니까?
NSOperationQueue를 사용하는 대신 스레드를 직접 작성하는 경우에는 어떤 차이가 있습니까?
고맙습니다!
여기에 비슷한 토론이 있습니다. http://stackoverflow.com/questions/184409/nsautoreleasepool-in-nsoperation-main 그러나 내 질문에 완전히 충실하지는 않습니다. – Alex