首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKEmitterNode崩溃

SKEmitterNode崩溃
EN

Stack Overflow用户
提问于 2014-08-27 19:20:30
回答 2查看 1.3K关注 0票数 1

我试图从sks文件中加载一个SKEmitterNode,并且一直收到以下错误:

代码语言:javascript
复制
Terminating app due to uncaught exception
'NSInvalidUnarchiveOperationException', 
reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: 
cannot decode object of class (SKEditorScene)'

代码:

代码语言:javascript
复制
var explosion = SKEmitterNode.emitterNodeWithName("Explosion")

retval.addChild(explosion)

ExtensionMethod:

代码语言:javascript
复制
class func emitterNodeWithName(name: String) -> SKEmitterNode
{
    return NSKeyedUnarchiver.unarchiveObjectWithFile(NSBundle.mainBundle().pathForResource(name, ofType: "sks")!) as SKEmitterNode
}

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-29 06:03:53

我有同样的问题,似乎是一个错误在目前的测试版。以下是一个解决办法:

代码语言:javascript
复制
func particleEmitterWithName(name : NSString) -> SKEmitterNode?
{
    let path = NSBundle.mainBundle().pathForResource(name, ofType: "sks")

    var sceneData = NSData.dataWithContentsOfFile(path!, options: .DataReadingMappedIfSafe, error: nil)
    var archiver = NSKeyedUnarchiver(forReadingWithData: sceneData)

    archiver.setClass(SKEmitterNode.self, forClassName: "SKEditorScene")
    let node = archiver.decodeObjectForKey(NSKeyedArchiveRootObjectKey) as SKEmitterNode?
    archiver.finishDecoding()
    return node
}
票数 3
EN

Stack Overflow用户

发布于 2014-08-29 11:38:37

我注意到,在更改粒子发射器编辑器中的一些属性后,会发生崩溃。因此,您也可以在代码或编辑器中编辑Xcode 5中的属性,以避免崩溃。显然,Xcode 6中的编辑器正在破坏文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25535337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档