Я немного озадачен тем, что происходит с кодом ниже. Я был под впечатлением, что children
будет необязательным на основе node.children
(который типа [AnyObject]
) быть типа [SKNode]
То, что я вижу в том, что children
никогда не nil
, это потому, что [AnyObject]
не содержит никакой информации о типе? Даже если я изменю [SKNode]
на [NSString]
, он по-прежнему идет к (1)?Вниз от AnyObject?
if let children = node.children as? [SKNode] {
// (1) STUFF WITH SKNODE...
} else {
// (2) NOPE, ITS NOT AN SKNODE
Я вижу, это из-за бит AnyObject. Если вы посмотрите в документах, это говорит о том, что node.children возвращает [AnyObject] (что всегда будет SKNodes). Смешно, как это всегда удается, если вы отбросили его на [NSString], я думаю, это потому, что AnyObject также охватывает объекты NSString. – fuzzygoat
Это удается только тогда, когда вы набрасываете его на '[NSString]', когда он пуст. Если бы в массиве каких-либо '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' – vacawama
yup perfect, я понял, я забыл о том, что он может быть пустым. Большое спасибо господину, спасибо за ваше время. – fuzzygoat