Я изучил документацию Apple о асинхронной работе, и я не могу получить ее должным образом.Как создать асинхронный NSOperation iOS?
Я делюсь своим пониманием и усилиями. Пожалуйста, взгляните и предложите мне правильно понять асинхронный NSOperation.
Asynchronous - это свойство readonly, и мы не можем его изменить. Я создал класс, который наследует NSOperation. У меня также есть начальный и основной метод.
Я не использую NSOperationQueue. Когда я запускаю операцию, используя [начало работы]; метод на основной теме. Затем в начале и в главном методе я получаю isAsynchronous '0'.
При запуске операции на вторичном потоке с помощью
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
operation = [[CustomOperation alloc] init];
[operation start];
}
Я до сих пор получаю isAsynchronous «0» в начале и в основной реализации метода.
Я не понимаю, почему isAsynchronous всегда возвращает «0» в любом потоке. Пожалуйста, дайте мне знать причину этого.
Я видел, что на основании этой проблемы были заданы некоторые вопросы, но я не мог понять эту функциональность.
Было бы полезно для меня, если вы дадите мне какой-либо пример, чтобы я мог правильно его понять.
Пожалуйста, дайте мне знать, если я не достаточно ясен, и я должен описать это больше.
Спасибо за ваш ответ. Теперь ситуация для меня понятна. Погодите, чтобы поток был создан или создан пользователем, работа начинается синхронно. Но можете ли вы привести мне пример для «Как я могу начать асинхронное NSOperation?» или "в каком состоянии я получу NSOperation isAsynchronous '1'? –
gnasher729: Я все еще боюсь с NSAperation isAsynchronous '1'. У меня нет подсказки, или я не мог понять, в каком состоянии я получаю NSOperation isAsynchronous как «1». Буду признателен за вашу помощь, если вы можете дать мне образец для этого или вы можете предоставить мне ссылку, чтобы я мог понять функциональность. –
Вы можете попробовать создать NSBlockOperation и поместить асинхронный код внутри блока. – Revinder