ios - No se pudo convertir el valor de tipo ''UIView''(0x112484eb0) a ''SKView''(0x111646718)
swift sprite-kit (4)
¡Finalmente lo arreglé! En lugar de poner las funciones en GameViewController y llamarlas desde la escena del juego, tuve que poner las funciones en gameScene y reemplazar la vista con self.view !.
No se pudo convertir el valor de tipo ''UIView'' (0x112484eb0) a ''SKView'' (0x111646718). Sigo recibiendo este error. ¿Puede alguien ayudarme porque la línea de código está ahí por defecto? Convertí el juego de SK en la última sintaxis rápida utilizando el beta de xcode 7. Al compilador faltaban muchas cosas, es por eso que volví a xcode 6. No tengo errores rojos; pero, el juego se bloquea y dice hilo 1: señal SIGARBT. Cualquier sugerencia sobre los cambios entre swift 2 y la última versión de swift 1 que podría haber causado problemas en la conversión a la última sintaxis swift. Quizás algo que se convirtió, que debería cambiar en xcode 6.3.2. Eliminaré la beta una vez que se resuelva este problema de bloqueo. Probablemente haya un error en el código, porque recibí el mismo error cuando copié el código en un nuevo proyecto de xcode. ¡Gracias por adelantado!
let skView = self.view as! SKView
Arreglo simple. Solo tiene que cambiar la Vista en la vista del controlador que está utilizando de UIView a SKView.
Para aquellos que no quieran usar un Storyboard
, puede crear la vista como un SKView
en la función loadView
del ViewController
.
class ViewController: UIViewController {
override func loadView() {
self.view = SKView()
}
override func viewDidLoad() {
let skView = view as! SKView
...
}
}
Vaya a su Guión gráfico, seleccione su UIViewController que contiene el juego SpriteKit y seleccione la vista desde el menú de la izquierda:
Ahora vaya a Identity Inspector y asegúrese de que Class sea SKView
y no UIView
:
Ahora debería poder compilar esta parte del código desde su UIViewController
:
// Configure the view.
SKView * skView = (SKView *)self.view;
O en Swift:
let skView = self.view as! SKView