문제

XML 파싱을 처리 할 수있는 보조 스레드가있는 iPhone 앱이 있습니다. 이러한 방법 중 일부 내부에서는 기본 스레드에서 생성되고 채워진 사전 (수정이 아닌 조회를 위해)을 참조해야합니다.

Apple의 문서화는 글로벌 변수가이를 달성하는 가장 좋은 방법 일 수 있음을 나타냅니다. 이제 구현이 어떻게 보일지 확신합니다. .m 상단의 사전을 정의하고 보조 스레드 내부에서 정상적으로 액세스 하시겠습니까?

도움이 되었습니까?

해결책

nsDictionary는 스레드 안전이므로 이니셜 라이저를 NSMutabledictionary (스레드-안전하지 않은)로 할당하지 않는 한 스레딩 문제가 될 수 있습니다. 그런 다음 보조 스레드는 여전히 채워진 상태에서 액세스하려고합니다.

(이 경우, 이니셜 라이저는 먼저 NSMutabledictionary를 로컬 변수로 할당하고 채우고 NSDictionary 's를 사용하여 완성 된 로컬을 전 세계에 복사해야합니다. +dictionaryWithDictionary: 또는 -initWithDictionary:.)

또는 초기화 할 때 글로벌을 유지하지 않을 수 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top