W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
類說明
CrossApp引擎的根類,主要是進行內(nèi)存的管理,定義部分回調(diào)函數(shù)指針。引擎絕大部分類派生自CAObject,其共同遵從同一套內(nèi)存管理方式。
CAObject 屬性(點擊查看方法介紹)
屬性 | 說明 |
m_uID | 對象唯一id |
m_uReference | 引用計數(shù)器 |
m_uAutoReleaseCount | 自動釋放引用計數(shù)器 |
UserData | 用戶數(shù)據(jù) |
UserObject | 用戶對象 |
Tag | 標(biāo)簽 |
TextTag | 文本標(biāo)簽 |
CAObject方法(點擊查看方法介紹)
方法 | 說明 |
init | 初始化 |
release | 減少對象的計數(shù)器 |
retain | 增加對象的計數(shù)器 |
autorelease | 設(shè)置自動管理方式 |
copy | 復(fù)制對象 |
isSingleReference | 實例化對象是否只有一個使用者 |
retainCount | 返回對象當(dāng)前計數(shù)器的值 |
isEqual | 與指定object實例對象是否相同 |
CrossApp內(nèi)存管理簡介
CrossApp采用引用計數(shù)器的方式進行內(nèi)存的管理,CAObject的派生類都采用這種方式管理對象。最基本的原則就是誰new/retain,誰就負(fù)責(zé)release,當(dāng)我們創(chuàng)建一個object時,會自動添加一個計數(shù)器,每當(dāng)對這個object進行引用時,都會使用retain方法進行計數(shù)器的加1操作;同樣的當(dāng)釋放對這個object的引用時都會調(diào)用release方法進行計數(shù)器的減1操作,如果引用計數(shù)器m_uReference的值為0,就刪除此object。
此外,CrossApp還提供了另一種自動管理內(nèi)存的方式,當(dāng)我們不確定object在何時釋放時,可以調(diào)用autorelease方法進行延遲釋放object操作,此時object處于自動管理狀態(tài),object被加入到自動釋放池中,系統(tǒng)會在每幀結(jié)束的時候自動對釋放池中的所有object進行一次release操作,如果m_uReference的值為0,則刪除當(dāng)前object。
CAObject 屬性說明
類型:unsigned int
解釋:CAObject的實例對象id,采用累加的方式,初值為零,每創(chuàng)建一個object,m_uID值加1,同時在創(chuàng)建一個object時會將當(dāng)前對象的m_uReference初始化為1,將當(dāng)前的m_uAutoReleaseCount初始化為0。
類型:unsigned int
解釋:引用計數(shù)器,每創(chuàng)建一個object,計數(shù)器的值自動加1。
類型:unsigned int
解釋:是否自動管理object,如果m_uAutoReleaseCount的值為0,非自動管理方式,當(dāng)m_uAutoReleaseCount的值為非0,那么采用自動管理的方式。
類型:CAObject*
解釋:用戶對象。
類型:void*
解釋:用戶數(shù)據(jù)。
類型:int
解釋:標(biāo)簽。
類型:std::string
解釋:文本標(biāo)簽。
CAObject 方法說明
返回值:
參數(shù):
解釋:初始化
返回值:void
參數(shù):
解釋:對引用計數(shù)器m_uReference的值加1。
void release(void)
返回值:void
參數(shù):
解釋:對引用計數(shù)器m_uReference的值減1,如果m_uReference的值為0,則刪除此object。
返回值:CAObject*
參數(shù):
解釋:將當(dāng)前object設(shè)置為自動內(nèi)存管理方式
CAObject* copy(void);
返回值:CAObject*
參數(shù):
解釋:復(fù)制對象
unsigned int retainCount(void) const
返回值:unsigned int
參數(shù):
解釋:返回當(dāng)前引用計數(shù)器m_uReference的值
bool isSingleReference(void) const
返回值:bool
參數(shù):
解釋:通過與引用計數(shù)器的值做比較,返回object是否只有一個使用者。
virtual bool isEqual(const CAObject* pObject)
返回值:
參數(shù):
類型 | 參數(shù)名 | 說明 |
const CAObject* | pObject | 對象 |
解釋:虛函數(shù),判斷當(dāng)前對象與指定實例化對象是否相同
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: