2012-02-17 2 views
0

NSXMLParser의 인스턴스를 독립적 인 스레드에서 실행하면서 백그라운드 스레드에서 AQXMLParser의 인스턴스를 실행하려고합니다. 그러나 AQXMLParser가 구문 분석을 완료하지 않은 상태에서 NSXMLParser가 시작되면 xmlparsechunk 메소드에서 응용 프로그램이 충돌합니다.같은 응용 프로그램에서 AQXMLParser와 NSXMLParser를 모두 실행합니다.

GCD에서 performSelectorinBackground까지 모든 것을 시도했습니다.

이 충돌이 발생하지 않는 유일한 시간은 주 스레드에서 둘 중 하나를 실행할 때입니다.

저는이 문제를 해결하기 위해 열심히 노력했지만 아직 행운을 얻지 못했습니다.

모든 조언을 크게 듣습니다.

답변

0

NSLock으로 코드의 중요한 영역 (충돌이 계속 발생하는 곳)을 래핑하는 것이 고려 되었습니까? 이렇게하면 각 프로세스는 다른 프로세스가 프로세스를 사용하지 않는 경우에만 해당 프로세스를 액세스 할 수 있습니다.

+0

음 ... 아직 NSLock을 시도하지는 못했지만 NSXMLParser와 AQXMLParser가 코드의 일부분을 서로 공유한다면 잘 작동하지 않을지 확실하지 않습니다. – user1030388

+0

NSXMLParser의 공용 메서드를 호출하는 AQXMLParser 옵션을 살펴볼 것입니다. – Stavash

관련 문제