스레드 간의 iPhone 가장 간단한 통신
-
18-09-2019 - |
문제
XML 파싱을 처리 할 수있는 보조 스레드가있는 iPhone 앱이 있습니다. 이러한 방법 중 일부 내부에서는 기본 스레드에서 생성되고 채워진 사전 (수정이 아닌 조회를 위해)을 참조해야합니다.
Apple의 문서화는 글로벌 변수가이를 달성하는 가장 좋은 방법 일 수 있음을 나타냅니다. 이제 구현이 어떻게 보일지 확신합니다. .m 상단의 사전을 정의하고 보조 스레드 내부에서 정상적으로 액세스 하시겠습니까?
해결책
nsDictionary는 스레드 안전이므로 이니셜 라이저를 NSMutabledictionary (스레드-안전하지 않은)로 할당하지 않는 한 스레딩 문제가 될 수 있습니다. 그런 다음 보조 스레드는 여전히 채워진 상태에서 액세스하려고합니다.
(이 경우, 이니셜 라이저는 먼저 NSMutabledictionary를 로컬 변수로 할당하고 채우고 NSDictionary 's를 사용하여 완성 된 로컬을 전 세계에 복사해야합니다. +dictionaryWithDictionary:
또는 -initWithDictionary:
.)
또는 초기화 할 때 글로벌을 유지하지 않을 수 있습니까?
제휴하지 않습니다 StackOverflow