【问题标题】:NSInvalidArgumentException in SpriteKit SwiftSpriteKit Swift 中的 NSInvalidArgumentException
【发布时间】:2018-11-09 20:17:53
【问题描述】:

我有一个带有 SpriteKit 场景的应用程序。但如果我在 iOS 10.0 上运行它,我会收到一些错误:

2018-11-09 21:58:26.379 App[56426:2425030] -[SKEmitterNode scaleMode]: unrecognized selector sent to instance 0x7c27adf0
2018-11-09 21:58:26.387 App[56426:2425030] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SKEmitterNode scaleMode]: unrecognized selector sent to instance 0x7c27adf0'

如果我将 View 的类更改为 UIView,什么都不会改变。

这是我的场景设置:

if let scene = SKScene(fileNamed: "TandM") {
            scene.size = self.view.frame.size
            scene.scaleMode = .resizeFill
            tandmScene.presentScene(scene)
        }

但这不是触发器。

完整的log.

【问题讨论】:

  • 错误是否发生在您发布的代码中或其他地方? scaleModeSKScene 的属性,但错误表明您正试图在 SKEmitterNode 的实例上调用它。
  • @rmaddy 它在 AppDelegate 中触发 Thread 1: signal SIGABRT 我有 SKEmitterNode.scaleMode 无处 :(
  • 你搞砸了,重新创建场景。
  • 哦,兄弟,我也遇到了这个问题,这些天......糟透了......

标签: ios swift xcode sprite-kit skemitternode


【解决方案1】:

“不要在故事板的 Interface Builder 中创建 SKView,即使它们嵌入在 UIView 中。” https://developer.apple.com/library/archive/qa/qa1889/_index.html

尝试在 viewDidLoad 方法中将您的 SKView 插入到视图层次结构中,而不是将其添加到情节提要中。它应该会有所帮助。

我建议,iOS 11 及更高版本已修复此错误,但不幸的是,iOS 10 确实存在此错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多