Как сказать функцию ОС IPhone, чтобы остановить / отменять?

StackOverflow https://stackoverflow.com/questions/3494085

Вопрос

У меня есть действие, которое начинается, когда пользователь нажимает на кнопку на экране (например, «Импорт»). В то же время, в нижней части экрана появляется Uitoolbar, что дает пользователю возможность отменить это действие. Как я могу правильно отправить сообщение отмены на начальную функцию? Если пользователь попадает в «Отмена», я не хочу, чтобы «импорт» продолжался. Теоретически я мог бы настроить его как отдельную ветку (которую я тогда мог бы убить), но я не уверен, что такое правильный способ сделать это, чтобы он мог очистить его за себя. Какие другие стратегии могут быть в состоянии «убить» функцию, которую пользователь уже начал?

Это было полезно?

Решение

Создайте отдельную работу, используя что-то вроде:

NSOperationQueue* queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation: [[[NSInvocationOperation alloc] initWithTarget: self 
      selector: @selector(_backgroundWorker) 
      object: nil] autorelease]];

Этот путь _backgroundworker будет выполнен без остановки основного потока пользовательского интерфейса.

Нажата одна кнопка «Отмена», установите некоторую внутреннюю переменную и проверьте его значение внутри _BackgroundWorker.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top