所以我加入了一些本地藍牙與網絡的GameKit,和這裏的一些問題,我想象,希望你能告訴我,爲什麼他們是虛構的:將GKSession傳遞給新的CCLayer對象?
我GKPickerController得到由我的菜單,一個CCLayer對象是推出被推送到CCSharedDirector。一旦GKPickerController建立了連接,它就會將GKSession傳遞給我的菜單層。
所以現在整個會話都屬於我的菜單,但我想將數據放入其他CCLayer對象(如遊戲本身!)。我如何使GKSession成爲全球?我可以簡單地添加一個方法並將整個Session傳遞給新的CCLayer子類嗎?這會保留整個會議嗎?
感謝提前一噸,我有一個爆炸!
我真的很想知道這個..我想我只是不完全理解類方法。我的印象是,如果你調用sharedInstace(在你的情況下),你會得到一些恆定的響應,僅由類定義。你告訴我的是,它會通過我在原始GameController實例中分配的任何內容嗎?如果有多個GameController實例呢?編譯器如何知道如何響應我的[[GameController sharedInstance] getGameKitSession]調用呢? – DanF 2011-05-24 04:12:42
@DanF你只需要實現sharedInstance方法只創建一次實例並將其存儲在一個靜態變量中。當第二次調用時,你可以返回靜態變量。而且由於你是使用它的人,你應該自律來總是使用sharedInstance方法而不是alloc/init方法。看看CCDirector如何實現sharedDirector方法。這是一個概念。 – Lukman 2011-05-24 04:24:00
這就是靜態的意思!並且引用sharedDirector非常有意義。作爲一個非常新的編碼器,我仍然獲得了挖掘和反向工程方法的信心,我不明白。我非常欣賞這一指導,缺乏全球變數讓我失望。 – DanF 2011-05-24 08:05:59