[cocos2d-x篇]static member EXC_BAD_ACCESS

文章撰寫日期︰2013/03/18 10:46
cocos2dx使用版本︰v 2.0.4
cocosBuilder使用版本︰v 2.0 alpha 1

一、問題

在Cocos2d-X裡希望將某個特定物件存放於static member裡,
以供日後實體成員使用,
但卻發生該static member EXC_BAD_ACCESS的問題。

二、解決方法

使用static member有幾個需要注意的新手事項︰

1.標頭檔(.h)裡要宣告靜態成員變數

static std::string question;
//宣告要使用一個string型別的question靜態成員變數

2.Body(.cpp)裡要初始化該成員變數

string GameScene::question;
/*如果沒有初始化,
會遇到
Undefined symbols for architecture armv7
的錯誤。*/

3.注意static member靜態成員變數的使用時機

有時候會發生在將某物件指針給static member,
卻造成static member為EXC_BAD_ACCESS的程式錯誤,
主要是欲被指派的指針物件可能都尚未初始化完成,
就將指針給了static member並做static member的存取,
如果注意程式建構的順序和時間,
掌握程式的呼吸方式,
基本上是不會有static member成為EXC_BAD_ACCESS的狀況的。

沒有留言 :

張貼留言