2011-03-19 8 views
0

다른 XIB 및 클래스에서 작업을 수행하려고합니다. 나는이 코드를 며칠 동안 봤다. 도와주세요! 아래는 몇 가지 코드입니다.다른 XIB에서 조치

CaptionView.h 파일 조치가 호출되지 않는 몇 가지 이유를 들어

#import "processViewController.h" 

CaptionView.m 파일

processViewController *test = [[processViewController alloc] init]; 
[test startUploads]; 

processViewController.m

- (IBAction)startUploads { 
[NSThread detachNewThreadSelector:@selector(startUploadsTwo) toTarget:self withObject:nil]; 
} 

- (IBAction)startUploadsTwo { 
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

... code... 

[pool release]; 
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
} 

. 어떤 도움을 주셔서 감사합니다! - Coulton

답변

3

내가 실수하지 않으면 작업자 스레드에서 UI를 업데이트 할 수 없습니다. 이러한 이유로 메인 스레드에서 networkIndicator을 변경해야합니다.

[self performSelectorOnMainThread:@selector(updateSpinner:) 
          withObject:nil 
         waitUntilDone:false]; 

the docs에서 :

당신은 여전히이 방법을 사용하지만 작업자에서이 문제를 일으킬 수

메인 스레드 응용 프로그램의 주 실행 루프를 포함, 그리고 어디 NSApplication 객체입니다 이벤트를 수신합니다.

이 인용 OSX입니다 NSApplication을 말한다, 그러나 나는 동일 iOS에서 UIApplication 적용 상상한다. 그래도 실제 견적을 찾을 수 없습니다.

+0

고마워요! 그게 도움이 됐어! 또한 내 데이터베이스 설정이 내 viewDidLoad에 있다는 것을 알았습니다. 사용자가 열지 않았기 때문에 연결이 이루어지지 않았습니다. 그래서 저는 그 동작에 연결을 복사하기 만하면 아름답게 작동합니다! – iosfreak

+0

@ phpnerd211 : 좋습니다! 기꺼이 도와 줬다. –