【发布时间】:2014-07-30 15:55:36
【问题描述】:
我正在将 Sprikit 应用程序转换为 Swift。但是我转换这个方法有问题:
SKAction *releaseBalls = [SKAction sequence:@[[SKAction performSelector:@selector(createMyNode) onTarget:self],[SKAction waitForDuration:1] ]];
在 Swift 中是否有任何替代代码?谢谢
【问题讨论】:
-
到底是什么问题?
-
@0x7fffffff 该方法在 Swift 中不存在,它只是 obj-c。
-
只需要使用
runBlock,在闭包中调用self.createMyNode。 -
根据你在方法/函数“createMyNode”中的表现,你应该小心,因为“SKAction.runBlock()”在 Swift 中确实接受了一个闭包,这可能会提高强大的潜力参考周期。根据文档,SKAction.runBlock 接受类型为“dispatch_block_t!”的周界。定义为“typealias dispatch_block_t = () -> Void”
-
可以为闭包定义一个捕获列表,避免强引用循环。
SKAction.runBlock() { [unowned self] () in self.createMyNode() }在the documentation 中查看。
标签: ios objective-c sprite-kit swift