#swift #swift-playground
#swift #swift-игровая площадка
Вопрос:
Я экспериментирую с игровыми площадками Swift для ipad и пытаюсь создать базовый таймер, который я использую
import UIKit
import ObjectiveC
import CoreFoundation
import XCPlayground
XCPSetExecutionShouldContinueIndefinitely()
class StopWatch {
var myCounter = 0
func timer() {
var timer = Timer.scheduledTimer(
timeInterval: 1,
target: self,
selector: Selector("incrementCounter:"),
userInfo: nil,
repeats: true
)
}
@objc func incrementCounter(mytimer:Timer) {
myCounter = myCounter 1
print(myCounter)
}
}
var myStopWatch = StopWatch()
myStopWatch.timer()
Однако он неоднократно выдает ошибку и каждый раз, когда я его запускаю. Я полагаю, это связано с тем, что импорт xcPlaygrounds недоступен в swift playgrounds для ipad вместе со всеми функциями и командами, которые поставляются с ним, мне было интересно, есть ли замена для этого модуля или лучший способ сделать это.
Спасибо
Ответ №1:
Если вы используете playground с swift3, вы можете использовать приведенный ниже код.
‘XCPSetExecutionShouldContinueIndefinitely’ устарел, поэтому я добавил
Модуль PlaygroundSupport и установите значение needsIndefiniteExecution равным true.
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
class StopWatch {
var myCounter = 0
func timer() {
let _ = Timer.scheduledTimer( timeInterval: 1, target: self, selector: #selector(incrementCounter(mytimer:)), userInfo: nil, repeats: true)
}
@objc func incrementCounter(mytimer:Timer) {
myCounter = myCounter 1
print(myCounter)
}
}
var myStopWatch = StopWatch()
myStopWatch.timer()