Есть ли замена для XCPlayground?

#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()