現在画面がタッチされれば画面にパーティクルが現れるような処理を書いているのですが、NSKeyedUnarchiver.unarchivedObjectでエラーが出てしまいます。
エラー内容はこういったものです。
Error Domain=NSCocoaErrorDomain Code=4864 "value for key 'NS.objects' was of unexpected class 'NSColor'. Allowed classes are '{( SKEmitterNode, NSNumber, NSValue, NSMutableArray, NSArray, NSMutableDictionary, NSString, NSDictionary )}'
unarchivedObjectのofClassをofClassesに変えて、その引数にNSColorを追加すればいいのかなと思ったのですが、NSColorが見当たりません。
エラー内容もイマイチ理解できていないので、どう対処すればいいかが分かりません。
コードは以下のようになっています。
swift
1for touch: AnyObject in touches { 2 let location = touch.location(in: self) 3 guard let path = Bundle.main.path(forResource: "IPParticle", ofType: "sks") else { return } 4 let url = URL(fileURLWithPath: path) 5 guard let data = try? Data(contentsOf: url) else { return } 6 7 do { 8 let particle = try NSKeyedUnarchiver.unarchivedObject(ofClass: SKEmitterNode.self, from: data) 9 particle!.position = location 10 particle!.numParticlesToEmit = 100 // 何個、粒を出すか。 11 particle!.particleBirthRate = 200 // 一秒間に何個、粒を出すか。 12 particle!.particleSpeed = 80 // 粒の速度 13 self.addChild(particle!) 14 } catch let error { 15 print(error) 16 } 17 18 }
デバッグの時に確認したのですが、dataインスタンスには値は入っていました。
そして、NSKeyedUnarchiver.unarchivedObjectの行でエラーが出てcatchに飛びます。
どうすればパーティクルを表示できるようになるでしょうか?
どなたか分かる方がいれば教えていただきたいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー