我目前正在製作一個iOS平等遊戲 的教程。你可以找到this one here。Swift語法更新?協議中不允許類。無法填寫SKTexture
我剛開始編碼雨燕因爲很多語法錯誤與輔導3個月內有潔癖工作時 我問我自己是否有在斯威夫特一些主要更新最近 出現。
到現在爲止,我自己或自己的XCode設法解決這些小問題,但 我不能幫助自己這一點:
protocol TextureObject {
class var sharedInstance: TextureDroid {get}
var texturesIso:[[SKTexture]?] {get}
var textures2D:[[SKTexture]?] {get}
}
這是我正在嘗試設置(酷似教程協議),但XCode不會讓我定義類變量。錯誤代碼是下面的:
"Class properties are only allowed within classes:
use static to declare a static property"
兩個取代「類」到「靜態」(這使得沒有邏輯意義的我)和 刪除協議(和定義應該在不使用的繼承類協議),導致另一個錯誤在此代碼:出現在所有我想要填補texturesIso
Immutable value 'self.texturesIso' may not be assigned to
這裏是線
class TextureDroid: TextureObject {
class var sharedInstance: TextureDroid {
return textureDroid
}
let texturesIso:[[SKTexture]?]
let textures2D:[[SKTexture]?]
init() {
texturesIso = [[SKTexture]?](count: 2, repeatedValue: nil)
textures2D = [[SKTexture]?](count: 2, repeatedValue: nil)
//Idle
texturesIso[Action.Idle.rawValue] = [
SKTexture(imageNamed: "iso_3d_"+textureImage(Tile.Droid, Direction.N, Action.Idle)),
SKTexture(imageNamed: "iso_3d_"+textureImage(Tile.Droid, Direction.NE, Action.Idle)),
SKTexture(imageNamed: "iso_3d_"+textureImage(Tile.Droid, Direction.E, Action.Idle)),
SKTexture(imageNamed: "iso_3d_"+textureImage(Tile.Droid, Direction.SE, Action.Idle)),
SKTexture(imageNamed: "iso_3d_"+textureImage(Tile.Droid, Direction.S, Action.Idle)),
SKTexture(imageNamed: "iso_3d_"+textureImage(Tile.Droid, Direction.SW, Action.Idle)),
SKTexture(imageNamed: "iso_3d_"+textureImage(Tile.Droid, Direction.W, Action.Idle)),
SKTexture(imageNamed: "iso_3d_"+textureImage(Tile.Droid, Direction.NW, Action.Idle)),
]
這個錯誤我問題:
如何解決第一個錯誤?有沒有一種新的方法來定義協議內的類?
這兩個錯誤是連接的還是第二個出現,因爲我設法消除第一個?
如何以正確的方式填充SKTexture? texturesIso.append也不起作用。
我對Swift Update了嗎?如果是,是否有關於Swift所有突然變化的概述,因爲我找不到一個。
我真的很感激任何人的幫助,非常感謝提前。
謝謝,這個問題的答案幫助了很多 –