我敢肯定,這是對你一個簡單的問題。Gameplaykit GKState,迅速FUNC有兩個參數
怎麼能寫我有兩個參數,一個GKState一個FUNC?
UPDATE
蘋果使用 func willExitWithNextState(_ nextState: GKState)
如果我使用somefunc(state:GKState)
作品精細
而somefunc(state:GKState, string:String)
簡化版,工作,爲什麼???
其他例子
我已經試過這樣:
class Pippo:GKState {}
//1
func printState (state: GKState?) {
print(state)
}
printState(Pippo) //Error cannot convert value of type '(Pippo).Type' (aka 'Pippo.Type') to expected argument type 'GKState?'
//2
func printStateAny (state: AnyClass?) {
print(state)
}
printStateAny(Pippo) //NO Error
//3
func printStateGeneral <T>(state: T?) {
print(state)
}
printStateGeneral(Pippo) //No Error
//4
func printStateAnyAndString (state: AnyClass?, string:String) {
print(state)
print(string)
}
printStateAnyAndString(Pippo/*ExpectedName Or costructor*/, string: "Hello") //ERROR
printStateAnyAndString(Pippo()/*ExpectedName Or costructor*/, string: "Hello") //ERROR cannot convert value of type 'Pippo' to expected argument type 'AnyClass?'
SOLUTION感謝@ 0x141E
func printStateAnyAndString (state: GKState.Type, string:String) {
switch state {
case is Pippo.Type:
print("pippo")
default:
print(string)
}
}
printStateAnyAndString(Pippo.self, string: "Not Pippo")
感謝您的回覆
謝謝我會在家裏嘗試。但爲什麼蘋果使用func willExitWithNextState(_ nextState:GKState)?爲什麼如果我使用somefunc(狀態:GKState)的作品,而somefunc(狀態:GKState,字符串:字符串)does not工作? –
第一個解決方案就是我想要的!謝謝!不是第二個,因爲我必須檢查課程,而不是課程 –
如果需要檢查對象的類型/類別(請參閱我更新的第二個解決方案),則可以使用'.dynamicType'。 – 0x141E