Доступ к селектору только один раз за сенсорный жест - PullRequest
0 голосов
/ 15 сентября 2011

У меня есть метод перезагрузки, который обрабатывает высокочувствительные данные ядра, и я хочу реализовать, что этот метод не может выполняться параллельно.

Есть ли простой способ реализовать что-то подобное?

Обновление

Может быть, это другая проблема.

Итак, у меня есть жест-пинч, и когда пользователь делает этот жест, я хочу выполнить метод только ОДИН РАЗ!

НО, если я сейчас симулирую это в симуляторе iOS, выполнение метода начинается, когда распознается минимальный жест повышения, и запускается, пока пользователь удерживает этот жест повышения.

Это использование по умолчанию?!?!? Как я могу отредактировать это, что метод запускается только один раз за жест щипка, независимо от того, как долго пользователь удерживает этот жест и т. Д.

Ответы [ 2 ]

0 голосов
/ 15 сентября 2011

andi1984,

Конечно, вы можете требовать, чтобы метод выполнялся только в основном потоке. Как в этом примере:

- (void) sensitiveMethod {

    // If necessary, rethrow on the main queue.
    if (!NSThread.isMainThread) {

        [[NSOperationQueue mainQueue] addOperationWithBlock: ^{

            [self sensitiveMethod];
        }];
        return;
    }

    // body of your sensitive method here.

} // sensitiveMethod

Andrew

0 голосов
/ 15 сентября 2011

Да, есть.Ознакомьтесь с директивой @synchronized: http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/ObjectiveC/Chapters/ocThreading.html

...