Как настроить функцию iPhone OS на остановку / отмену? - PullRequest
1 голос
/ 16 августа 2010

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

1 Ответ

1 голос
/ 16 августа 2010

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

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

Таким образом, _backgroundWorker будет выполняться без остановки основного потока пользовательского интерфейса.

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

...