2011-03-26 4 views
1

개체를 만드는 백그라운드 스레드가 있다고 가정합니다. 이 개체는 결국 UI를 업데이트하여 주 스레드로 보내야합니다. 스레드를 하나의 스레드에 할당하고 다른 스레드에서 스레드를 할당 해제하는 것은 어색합니다. 이것이 일반적인가요, 아니면 더 좋은 패턴이 있습니까? 고려 :스레드 간의 개체 소유권 양도?

// Called on a background thread 
-(void)workerDoStuff 
{ 
    MyObject *obj = [[MyObject alloc] init]; 
    [self performSelectorOnMainThread:@selector(updateUI:) withObject:obj]; 
} 

// Performed on main thread 
- (void)updateUI:(MyObject *)obj 
{ 
    // Do stuff with obj 
    [obj release]; 
} 

감사 the documentation 가입일

답변

2

:

이 방법은 수신기 및 셀렉터가 수행 된 후까지 ARG 파라미터를 보유한다. 이 updateUI: 반환 할 때까지 유지됩니다로

그래서 당신은, 전화를 한 후 workerDoStuffobj을 해제 할 수 있습니다.

관련 문제