2013-12-14 2 views
0

iOS에서 NSData 리턴 유형으로 백그라운드에서 메소드를 수행하는 방법.ios에서 백그라운드에서 NSData 반환 유형을 사용하여 메소드를 수행하는 방법

NSData *loginiddata=[self performSelectorInBackground:@selector(loaddatawithurl:param:) withObject:OBJ]; 

을하지만 작동하지 :

나는이 시도했다.

+3

: (내 생각에) 가장 쉬운 해결책은 GCD (그랜드 센트럴 파견)를 사용하는 대신 방법이 있나요? 문제에 대한 자세한 정보를 제공하십시오. –

+0

백그라운드에서 선택기를 수행하지만 반환 할 데이터가 생길 때까지 진행할 수 없다는 것은 무엇을 의미합니까? 너의 생각은 혼란 스럽다. –

+0

"- (NSData *) loaddatawithurl : (NSArray *) Array;"를 실행하고 싶습니다. " 백그라운드에서이 방법은 어떻게 할 생각이 있습니까? 내가 hv 코드의 라인을 시도했지만 performSelectorInBackground 메서드가 반환 형식이 void로되어있어 호환되지 않는 반환 형식의 오류가 발생합니다. – user1761289

답변

2

귀하의 경우 performSelectorInBackground 두 가지 문제가 있습니다 : 방법이 더 리턴 값 (위 켄 Thomases '코멘트 비교)이 없으며,이 방법은 단일 인수를 복용에서만 작동합니다. "이 작동하지 않습니다"무엇을 의미하는지

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    NSData *loginiddata = [self loaddatawithurl:url params:params]; 
    // ... 
}); 
+0

Martin R의 도움에 감사드립니다. – user1761289

+0

@ user1761289 : 환영합니다! –