Как отменить вызов dispatch_after?

Я делаю приложение, в котором двигаются две кнопки. Первый перемещается сразу, а второй перемещается через 1 секунду. Что происходит сейчас в моем приложении, так это то, что когда я нажимаю кнопку «Пуск» до истечения одной секунды, он показывает, что две из вторых кнопок движутся. Я считаю, что мне нужно будет сделать так, чтобы при нажатии кнопки мне пришлось отменить dispatch_after, но когда я пытаюсь сделать это, написав этот код:

let time1 = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW),1 * Int64(NSEC_PER_SEC))
dispatch_after(time1, dispatch_get_main_queue()) {
    // code of second button moving
}
if time1 == true
    {time1 = false}

он говорит, что я не могу назначить это dispatch_time. Что я должен делать? Это полный код, если это поможет вам:

@IBAction func startbutton(sender: UIButton) {
// code for moving the first button
let time1 = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW),1 * Int64(NSEC_PER_SEC))
dispatch_after(time1, dispatch_get_main_queue()) {
    // code of second button moving
}
if time1 == true
    {time1 = false}
}

person Anton O.    schedule 17.12.2015    source источник
comment
dispatch_time не является логическим значением, поэтому вы не можете сравнить его с true или false или присвоить ему эти значения. Возможно, что более важно, как вы анимируете эти кнопки? Анимации UIKit обычно не требуют вызовов GCD.   -  person Tom Harrington    schedule 17.12.2015
comment
Хорошо, я обновлю вопрос.   -  person Anton O.    schedule 17.12.2015