Я пытаюсь ускорить работу приложения, выполняя вычисления в фоновом режиме, но у меня возникают проблемы с этим. Первоначально я использовалВыполнить метод С int Возвращаемое значение в фоновом потоке
[self performSelectorInBackground:@selector(calculateValue:) withObject:[words objectAtIndex:row]];
, который был прекрасен, когда мой селектор был недействительным. Тем не менее, я пытаюсь сделать что-то подобное, но, очевидно, приведенный ниже код недействителен.
int value = [self performSelectorInBackground:@selector(calculateValue:) withObject:[words objectAtIndex:row]];
Любая помощь очень ценится.
Обновлено
Вот маршрут я в настоящее время идет. Я не знаю, как назвать обратно в основной поток, чтобы отправить обновленное значение из computeWordValue моей cellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
int value = [self performSelectorInBackground:@selector(calculateWordValue:) withObject:[wordsSection objectAtIndex:row]];
NSString *pointValue = [[NSString alloc] initWithFormat:@"Point:%d",value];
cell.pointLabel.text = pointValue;
}
-(void)calculateWordValue:(NSString *)word {
[self performSelectorOnMainThread:@selector(computeWordValue:) withObject:word waitUntilDone:YES];
}
-(int)computeWordValue:(NSString *)word {
return totalValue; //This will be a randomly generated number
}
Насколько быстрым/медленным является `calculateWordValue` и почему вы пытаетесь запустить его в фоновом режиме в этой точке? – 2010-12-03 16:03:21
Он выполняет множество расчетов, я просто упростил его для публикации – aahrens 2010-12-03 16:19:24