2015-04-23 60 views
1

所以我在.h文件中像這樣的枚舉:爲什麼枚舉在Swift中不起作用?

@interface Scene: SKScene 

    enum ScreenSize { 
     SMALL, MEDIUM, LARGE 
    }; 

    //Some other stuff... 
@end 

而且我有一個從這個類繼承的類迅速:

class SwiftScene: Scene { 

    var screenSize = SMALL 

    override func didMoveToView (view: SKView) { 

     if screenSize == SMALL { 
      //Do Something 
     } 
    } 
} 

這個if語句給我的錯誤:二元運算符'=='不能應用於兩個ScreenSize操作符

我該怎麼辦?我應該使用枚舉嗎?

這是繼承問題嗎?

+3

嘗試使用'ScreenSize.SMALL'訪問 –

+0

如果我這麼說:ScreenSize.Type沒有名爲SMALL的成員 – SemAllush

+0

您是否已經導入類? –

回答

1

您的代碼應該是這樣的:

class SwiftScene: Scene { 

    var screenSize: Scene.ScreenSize = .SMALL 

    override func didMoveToView (view: SKView) { 

     if screenSize == .SMALL {/*Do Something*/} 
    } 
} 

注意屏幕尺寸和的類型聲明。.SMALL在它使用的兩個地方。另外,你的//也在註解大括號。

+0

現在它說ScreenSize不是Scene – SemAllush

+1

的成員哦,我剛纔注意到你的'Scene'類是一個Obj-C接口。現在我不確定在這種情況下swift編譯器可以正確解釋'Scene.ScreenSize'。 – wltrup

+0

請嘗試var'screenSize:ScreenSize = .SMALL'。 – wltrup