У меня следующий код в моем приложении IOS:Неправильный порядок выполнения в объектный код C
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self performSelector: @selector(generateDataForDates:) withObject:paramArray afterDelay:0.1];
});
return self.dataArray;
App выполняет оператор возврата первой, а затем над «performselector», которая является причиной несогласованности данных. У кого-нибудь есть ключ? Мне нужно выполнить executeselector сначала, а затем вернуть оператор.
networkActivityIndicator не будет отображаться в новом представлении, если задержка равна нулю. Это единственная причина для использования задержки в performselector. – user2139064
Вы не можете сделать это с ожиданием завершения 'generateDataForDates:' в том же методе. После задержки вы вызовете дополнительный метод, который будет выполнять «generateDataForDates» и обрабатывать данные по завершении. – rckoenes
Это ничего не меняет. На самом деле проблема связана с какой-то библиотекой, которую мы используем, - она вынуждает событие выполнить оператор возврата сначала, а затем вызвать параметр performselector. Поэтому я спрашивал, можно ли что-то сделать, чтобы performselector был первым оператором, который должен выполняться, а затем возвращать оператор. – user2139064