)SKAction.runBlock(と引数を受け取る関数を呼び出して、私は引数を期待する関数を実行するためにSKAction.runBlock()を使用したい:私はスウィフトとSpriteKitベース</p> <p>で働いている
class Tile : SKShapeNode
{
}
override func didMoveToView()
{
let tile = Tile()
tile.runAction(SKAction.runBlock(myFunc(tile)))
}
func myFunc(tile: Tile)
{
}
期待される引数の型 へ
型の値を変換できません「()」 ':
私は任意の引数を期待していない関数を作成しようとすると、すべてが正常に動作しますが、戻って上記のコードは、これがディスパッチ_block_t '(別名@convention(block)() - >()')
私は何を理解していませんか?
感謝。だから、なぜ{{} "を置かなくても期待される引数を持たない関数を呼び出すことができますか? – Drakalex
@Drakalex、Swiftでは、メソッド参照は自動的に同じ関数型のクロージャに変換されます。したがって、 'myFunc'を書くだけで、'(Tile) - > Void'型のクロージャを作成しています。したがって、 'anotherFunc'が' func anotherFunc(){} 'として宣言されている場合、' anotherFunc'を書くと型 '() - > Void'('() - > ')と同じ型のクロージャが作成されます。以前に見たことがある。 – OOPer
関数はクロージャーで、特殊なクロージャーなので、変換は行われません(最後のコメントは無視されます) – Knight0fDragon