调用函数并可以编码的SKAction?
SKAction that calls function and can be encoded?
我正在使用 SpriteKit 和 swift 制作游戏。我的一些节点具有调用函数的 runBlock 操作:
SKAction.runBlock(someFunction)
当我使用 NSCoder
对我的场景进行编码和解码时,我在控制台中打印了这条消息
SKAction: Run block actions can not be properly encoded,
Objective-C blocks do not support NSCoding.
Swift 不支持选择器 SKActions,我该如何解决这个问题。
长话短说:
如何制作调用函数且可编码的 SKAction?
是否有另一种类型的 SKAction 可以做到这一点?
我应该创建一个客户 SKAction 子类吗?
非常感谢任何帮助:)
你不能,也别无选择。块无法编码。
您可以做的是尝试让您的代码在没有块操作的情况下工作,如果这是可能的话。
SKAction performSelector
可以搞定,虽然有点乱
主要的烦恼是:
向选择器传递参数;和
正在替换 customActionWithDuration:runBlock
.
为了解决这两个问题,我将选择器调用包装在一个轻量级对象中,该对象与其对应的 SKAction
.
一起被编码
我的结果正在进行中。我正在记录关于 Whosebug 问题的工作 (如果我看到它,我会用你的,抱歉!)。
我的代码(实现轻量级包装器对象)是 here。
我正在使用 SpriteKit 和 swift 制作游戏。我的一些节点具有调用函数的 runBlock 操作:
SKAction.runBlock(someFunction)
当我使用 NSCoder
对我的场景进行编码和解码时,我在控制台中打印了这条消息
SKAction: Run block actions can not be properly encoded,
Objective-C blocks do not support NSCoding.
Swift 不支持选择器 SKActions,我该如何解决这个问题。
长话短说: 如何制作调用函数且可编码的 SKAction?
是否有另一种类型的 SKAction 可以做到这一点?
我应该创建一个客户 SKAction 子类吗?
非常感谢任何帮助:)
你不能,也别无选择。块无法编码。
您可以做的是尝试让您的代码在没有块操作的情况下工作,如果这是可能的话。
SKAction performSelector
可以搞定,虽然有点乱
主要的烦恼是:
向选择器传递参数;和
正在替换
customActionWithDuration:runBlock
.
为了解决这两个问题,我将选择器调用包装在一个轻量级对象中,该对象与其对应的 SKAction
.
我的结果正在进行中。我正在记录关于 Whosebug 问题的工作
我的代码(实现轻量级包装器对象)是 here。