2015-11-18 2 views
1

У меня есть NSTimer, выполняющий каждые 0,05 секунды в функции под названием moving. Внутри moving Я хочу, чтобы число подсчитывало и показывало его в ярлыке и в то же время совершает перемещение объекта.Xcode NSTimer count ++

Теперь проблема в том, что она может выполнять только одну из этих вещей одновременно. Это код:

timer = NSTimer.scheduledTimerWithTimeInterval(0.05, target: self, selector: "moving", userInfo: nil, repeats: true)  

func moving() { 

    countingUp = countingUp + 1 

    label.text = "\(countingUp)" 

    objectOne.center = CGPointMake(objectOne.center.x, objectOne.center.y + 1) 
} 

Сейчас это только подсчитывая в метке, пока объект не движется. Однако, если я удалю всю часть кода метки, объект движется. Может кто-нибудь, пожалуйста, помогите мне с этим?

+0

вам может понадобиться для запуска кода на главном потоке, – turbo

ответ

0

Попробуйте это:

let runloop = NSRunLoop.currentRunLoop() 
let timer = NSTimer(timeInterval: 0.05, target: self, selector: "moving", userInfo: nil, repeats: true) 
runloop.addTimer(timer, forMode:NSRunLoopCommonModes) 
runloop.addTimer(timer, forMode:UITrackingRunLoopMode) 
0

Попробуйте это ...

let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(0.05 * Double(NSEC_PER_SEC))) 
dispatch_after(delayTime, dispatch_get_main_queue()) { 
countingUp = countingUp + 1 
label.text = "\(countingUp)" 
objectOne.center = CGPointMake(objectOne.center.x, objectOne.center.y + 1) 
} 
Смежные вопросы