2012-08-14 4 views
-3

Нужна помощь в синтаксисе, когда метод, передаваемый в @selector, имеет аргументы. Благодаря!Objective-C Передача сообщений с аргументами в performSelectorOnMainThread:

//This works 
dispatch_async(kBgQueue, ^{ 

[self performSelectorOnMainThread:@selector(hydrateList) withObject:nil waitUntilDone:YES]; 

}); 



//But what about when the method in the selector has arguments? 
//This is incorrect, syntactically 
    dispatch_async(kBgQueue, ^{ 

    [self performSelectorOnMainThread:@selector(hydrateListForCategory:self.categorySelected) withObject:nil waitUntilDone:YES]; 
    }); 
+3

Поиск этого метода и прочитать документацию. [Документация NSObject] (https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html#//apple_ref/occ/instm/NSObject/performSelectorOnMainThread:withObject : waitUntilDone :) – MechEthan

ответ

1
[self performSelectorOnMainThread:@selector(hydrateListForCategory:) withObject:self.categorySelected waitUntilDone:YES]; 
3

Подсказка: вот почему "withObject:" часть есть.

Подсказка 2. Apple имеет довольно хорошие документы для своих фреймворков.

Подсказка 3:

[self performSelectorOnMainThread:@selector(hydrateListForCategory:) withObject:self.categorySelected waitUntilDone:YES];