2011-09-24 2 views

답변

4

대다수는 thread safe - swizzling 등 - 그러나 일부는 그렇지 않습니다. 방법을 찾아야한다. 연결된 개체가 아닐 수도 있습니다. 명시 적으로 문서화되지 않은 경우 스레드 안전하지 않은 것으로 간주해야합니다.

런타임 소스를 확인하십시오. 그 안에있는 의견은 밝게 비춰질 수 있습니다. 그리고 문서에서 설명을 요구하는 버그를 제출하십시오 (이미 명확하지 않은 경우).

+0

감사합니다. 조명입니다. 구현이 현재 스레드 안전을 보장하기 위해 그 시점에서 멀어 지거나 가까운 장래에 변경되지 않는다고 기대하는 것이 합리적일까요? http://opensource.apple.com/source/objc4/objc4-493.9/runtime/objc-references.mm에서 연관 참조를 가져 오거나 설정하기위한 스핀 잠금을 사용합니다. 나는 더 많은 문서를 요구하는 버그 보고서를 제출할 것이다. –

+0

(릴리스 된) API 또는 런타임에서 스레드 안전성으로 문서화 된 모든 구현은 스레드 안전성을 유지한다고 가정하는 것이 합리적 일 수 있습니다. 물론 가능할 수도 있지만 향후 버전의 릴리스 노트를 읽는 것이 좋습니다. – matthias

+0

예 - 현재 의도적으로 스레드 안전성이있는 항목은 이후에 안전하지 않은 스레드로 회귀 할 가능성은 희박합니다. 이는 역방향 일 것이므로 이진 호환성 문제가 발생할 수 있기 때문입니다. 분명히 적절한 문서화가 계약을 훨씬 더 강력하게 만듭니다. – bbum

관련 문제