내 iPad 응용 프로그램에서 웹 서비스 (SOAP)의 데이터를 조회하는 스레드를 생성하고 있습니다. NSDictionary 멤버 개체를 사용하여 NSArray에 응답을 구문 분석합니다. 내 서비스를 호출하고 동 기적으로 구문 분석하면 예상대로 작동합니다. 이제 백그라운드 스레드를 시작하고 조회 스레드가 풀을 풀고 주 스레드의 UITableView가 데이터를 표시하려고하면 (reloadData가 호출 됨) 주 스레드에서 중단이 발생합니다.iOS : 조회 스레드의 NSAutoreleasePool에서 결과를 기본 스레드로 복사해야합니까?
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
^------------- Thread 1: Program received signal: EXC_BAD_ACCESS
[pool release];
return retVal;
}
내 생각에, 풀링 된 결과가 풀 배출에 의해 해제되었습니다. 한 영역에서 다른 영역으로 복사해야합니까? 그것은 큰 구조이고 사본은 비쌀 것입니다.
어떻게 내가 주 스레드에서 내 UITableView에 대한 데이터 소스를 안전하게 빌드하기 위해 백그라운드 스레드를 갖게 되었습니까?
스레드 요청을 한 개체에 대한 스레드에서 콜백이 이미 있습니다. 제 질문은 구문 분석 된 개체를 백그라운드 스레드에서 꺼내 주 응용 프로그램에서 안정적으로 유지하는 것입니다 (또는 ... 한 풀에서 다른 풀로 복사해야합니까? – mobibob