Tôi rất mới phát triển iOS, nhưng tôi đã chơi xung quanh với ứng dụng mẫu SpriteKit để tìm hiểu cách mọi thứ hoạt động và cố gắng khởi động Swift khi tôi đang ở đó. Một điều tôi đang gặp phải là làm thế nào để làm việc với các lớp con SpriteKit.Phân lớp lớp SpriteKit trong Swift
tôi trong file GameScene.swift và tôi đang cố gắng để trích xuất một lớp học cho các "Hello World" nhãn, vì vậy đây là những tập tin giống như:
// 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 */
}
}
Vì vậy, HelloLabel
được thiết kế chỉ là một pass-through trong một nỗ lực để hiểu làm thế nào tất cả mọi thứ dây với nhau, nhưng khi tôi chạy ứng dụng, tôi nhận được lỗi sau:
/Users/jon/Projects/ErrorExample/ErrorExample/GameScene.swift: 11: 11: fatal error: use of unimplemented initializer 'init()' for class 'ErrorExample.HelloLabel'
tôi không hiểu được điều gì thông điệp này đang cố gắng cho tôi biết . Cách tôi đọc lỗi này là nó phàn nàn rằng tôi đã không thực hiện một initializer gọi là init
trong lớp ErrorExample.HelloLabel
, nhưng nó chắc chắn trông giống như tôi có với tôi!
Vì vậy, tôi đang làm gì sai ở đây - làm cách nào để trích xuất một lớp để ẩn tất cả thiết lập này?
Awesome, cảm ơn để được giúp đỡ !! :) – jonallured