Я ищу хороший способ выполнить селектор в главном потоке с двумя параметрами
Мне действительно нравится использовать
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
метод, только теперь у меня есть два параметра.
Итак, в основном у меня есть делегат, которого я должен уведомить, когда изображение загружено:
[delegate imageWasLoaded:(UIImage *)image fromURL:(NSString *)URLString;
Но метод, в котором я это делаю, может быть вызван в фоновом потоке, и делегат будет использовать это изображение для обновления пользовательского интерфейса, поэтому это необходимо сделать в основном потоке. Поэтому я действительно хочу, чтобы делегат также был уведомлен в основном потоке.
Итак, я вижу один вариант - я могу создать словарь, таким образом, у меня есть только один объект, который содержит два параметра, которые мне нужно передать.
NSDictionary *imageData = [NSDictionary dictionaryWithObjectsAndKeys:image, @"image", URLString, @"URLstring", nil];
[(NSObject *)delegate performSelectorOnMainThread:@selector(imageWasLoaded:) withObject: imageData waitUntilDone:NO];
Но такой подход мне не кажется правильным. Есть ли более элегантный способ сделать это? Возможно, используя NSInvocation?
Заранее спасибо.