NSTimer 在 类 中不工作,这不是 GameScene
NSTimer Not Working In Classes That Are Not GameScene
我似乎无法让 NSTimer 在我创建的 class 中工作。每次我 运行 该应用程序时,它都会崩溃并显示以下内容:
2015-11-06 19:23:47.108 Project[30546:7771747] *** NSForwarding: warning: object 0x7b025190 of class 'Project.LogoScreen' does not implement methodSignatureForSelector: -- trouble ahead
Unrecognized selector -[Project.LogoScreen show]
(lldb)
然而,当我在 GameScene 中使用 NSTimers 时,我没有收到任何错误。
下面是我 运行ning 失败的代码:
// Class #1
import SpriteKit
var background: SKSpriteNode!
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
anchorPoint = CGPointMake(0.5, 0.5)
background = SKSpriteNode(color: UIColor.whiteColor(), size: size)
addChild(background)
LogoScreen().create()
}
}
// Class #2
import Foundation
import SpriteKit
var spriteLogo: SKSpriteNode!
var spriteScreenLogo: SKSpriteNode!
class LogoScreen {
func create() {
spriteScreenLogo = SKSpriteNode(color: UIColor.blackColor(), size: background.size)
spriteScreenLogo.zPosition = 1
background.addChild(spriteScreenLogo)
spriteLogo = SKSpriteNode(imageNamed: "logo")
spriteLogo.alpha = 0
spriteLogo.zPosition = 2
background.addChild(spriteLogo)
NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector: Selector("show"), userInfo: nil, repeats: false)
}
func show() {
print("here")
}
}
像这样:
@objc func show() {
print("here")
}
我似乎无法让 NSTimer 在我创建的 class 中工作。每次我 运行 该应用程序时,它都会崩溃并显示以下内容:
2015-11-06 19:23:47.108 Project[30546:7771747] *** NSForwarding: warning: object 0x7b025190 of class 'Project.LogoScreen' does not implement methodSignatureForSelector: -- trouble ahead Unrecognized selector -[Project.LogoScreen show] (lldb)
然而,当我在 GameScene 中使用 NSTimers 时,我没有收到任何错误。
下面是我 运行ning 失败的代码:
// Class #1
import SpriteKit
var background: SKSpriteNode!
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
anchorPoint = CGPointMake(0.5, 0.5)
background = SKSpriteNode(color: UIColor.whiteColor(), size: size)
addChild(background)
LogoScreen().create()
}
}
// Class #2
import Foundation
import SpriteKit
var spriteLogo: SKSpriteNode!
var spriteScreenLogo: SKSpriteNode!
class LogoScreen {
func create() {
spriteScreenLogo = SKSpriteNode(color: UIColor.blackColor(), size: background.size)
spriteScreenLogo.zPosition = 1
background.addChild(spriteScreenLogo)
spriteLogo = SKSpriteNode(imageNamed: "logo")
spriteLogo.alpha = 0
spriteLogo.zPosition = 2
background.addChild(spriteLogo)
NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector: Selector("show"), userInfo: nil, repeats: false)
}
func show() {
print("here")
}
}
像这样:
@objc func show() {
print("here")
}