Jestem bardzo początkującym programistą dla systemu iOS, ale bawię się z aplikacją szablonu SpriteKit, aby dowiedzieć się, jak działają i próbować uruchomić system Swift, gdy jestem na tym komputerze. Jedną z rzeczy, z którą mam problem, jest praca z podklasami SpriteKit.Klasy Subklasowania SpriteKit w Swift
Jestem w pliku GameScene.swift i próbuję wydobyć klasę na etykiecie „Hello World”, tak oto co ten plik wygląda następująco:
// GameScene.swift
import SpriteKit
class HelloLabel: SKLabelNode {
init(fontNamed: String) {
super.init(fontNamed: fontNamed)
self.text = "Hello, World!"
self.fontSize = 65;
self.position = CGPoint(x: 400, y: 500);
}
}
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
/* Setup your scene here */
// let myLabel = SKLabelNode(fontNamed:"Chalkduster")
// myLabel.text = "Hello, World!";
// myLabel.fontSize = 65;
// myLabel.position = CGPoint(x: 400, y: 500);
let myLabel = HelloLabel(fontNamed: "Chalkduster")
self.addChild(myLabel)
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
/* snip, no changes made here */
}
override func update(currentTime: CFTimeInterval) {
/* snip, no changes made here */
}
}
Więc HelloLabel
jest przeznaczona po prostu być pass-through, próbując zrozumieć, jak razem przewody wszystko, ale kiedy uruchomić aplikację, pojawia się następujący błąd:
/Users/jon/Projects/ErrorExample/ErrorExample/GameScene.swift: 11: 11: fatal error: use of unimplemented initializer 'init()' for class 'ErrorExample.HelloLabel'
ja nie rozumiejąc, co ta wiadomość próbuje mi powiedzieć . Sposób, w jaki czytam ten błąd, polega na tym, że narzekałem, że nie zaimplementowałem inicjalizatora o nazwie init
w klasie ErrorExample.HelloLabel
, ale na pewno wygląda na to, że muszę do mnie!
Co ja tu robię źle - jak wypakować klasę, aby ukryć wszystkie ustawienia?
Awesome, thanks za pomoc !! :) – jonallured