GameScene does not have a member named spawnPipes
let spawn = SKAction.runBlock({() in self.spawnPipes()})
Пишет ошибку
GameScene does not have a member named spawnPipes
Как исправить?
let spawn = SKAction.runBlock({() in self.spawnPipes()})
Пишет ошибку
GameScene does not have a member named spawnPipes
Как исправить?
Такое происходит, когда в первой же строке блока запускаешь функцию или другой блок, который возвращает значение, отличное от описанного в блоке высшего уровня, то есть у runBlock () -> Void
тип возвращаемого значения Void
, а ваша функция spawnPipes()
возвращает что-то иное. В данном случае такая конструкция в принципе неверна, поскольку runBlock
вернет Void
, а вы пытаетесь записать результаты его выполнения в константу let spawn
. То есть по сути let spawn = Void
- вряд ли это то, что вам нужно.
Вероятно, нужно что-то типа:
var spawn: SomeType!
SKAction.runBlock { _ in spawn = self.spawnPipes() }
Происходит такая штука потому, что мы можем возвращать из блока значение, не используя слово return, это сделано для упрощения синтаксиса, но нужно следить за типами, например:
let items = [SomeType]()
let filtered = items.filter { $0.type != SomeEnum.concretteType }
Тут слова return нет в принципе, мы можем его написать, но необязательно, во всех блоках тема, очевидно, та же, но это не всегда прозрачно.