GameViewController 클래스에서 초기화 된 UIButton으로 게임을 일시 중지하려면 GameViewController에서 내 Timest 메서드 (내 GameScene로 작성)를 호출해야합니다. 나는이 같은 class func
를 사용하기 위해 노력하고있어SWIFT에서 클래스 func을 사용하여 다른 클래스의 메서드를 호출하는 방법
는 :
[Funfair_balloon.GameScene updateTimer:]: unrecognized selector sent to class 0x10b13d940
내가 앱이 완벽하게 작동 class func
사용하지 마십시오
class GameScene: SKScene, SKPhysicsContactDelegate {
override func didMoveToView(view: SKView) {
GameScene.startTimer()
}
class func startTimer(){
timerCount = NSTimer.scheduledTimerWithTimeInterval(1.0
, target: self, selector: Selector("updateTimer:"), userInfo: nil, repeats: true)
}
func updateTimer(dt:NSTimer){
counter--
counterGame++
if counter<0{
timerCount.invalidate()
removeCountDownTimerView()
} else{
labelCounter.text = "\(counter)"
}
if counterGame>20{
balloon.size = CGSizeMake(50, 50)
}
if counterGame>40{
self.physicsWorld.gravity = CGVectorMake(0, -0.8)
}
if counterGame>60{
self.physicsWorld.gravity = CGVectorMake(0, -1)
}
}
func removeCountDownTimerView(){
defaults.setInteger(balloonDestroyed, forKey: "score")
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let settingController: UIViewController = storyboard.instantiateViewControllerWithIdentifier("GameOverViewController") as UIViewController
let vc = self.view?.window?.rootViewController
vc?.presentViewController(settingController, animated: true, completion: nil)
}
}
그러나이 코드 오류를 반환 하지만 내 UIButton 타이머를 멈출 수 없습니다. 내가 뭘 잘못 했니?
당신이'timerCount = NSTimer.scheduledTimerWithTimeInterval (1.0, 대상에'updateTimer'를 호출하는 타이머를 말할 선택기 ("updateTimer :"), 사용자 정보 : 전무, repeat : true)'하지만 class func의'self'는 인스턴스가 아니므로 class 메소드가 아닌 인스턴스 메소드 인'updateTimer'를 호출하는 데 사용할 수 없습니다. – Grimxn
답장을 보내 주셔서 감사합니다. 나는 GameScene()으로 자기를 대체합니다. 더 이상 오류가 없지만 타이머가 작동하지 않습니다. – Haox