91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Cocos2dx學習筆記(1) Ref類型數據 垃圾回收機制

發布時間:2020-06-11 11:54:41 來源:網絡 閱讀:1092 作者:葡萄甜醋 欄目:游戲開發

1、不調用autorelease()的情況

        TestVO* vo = new TestVO();
        //未調用create()方法創建,沒有執行過autorelease()
        vo->init();
        //這種情況下局部變量無法被回收
        vo->release();
        //需要手動調用release()方法
        
        //CC_SAFE_DELETE(vo);
        //也可以用這種方法刪除


2、調用autorelease()的情況

        TestVO* vo = TestVO::create(); //引用計數=1
        //create()方法中執行過autorelease()
        //引用計數設為1
        //在幀結束的時候引用計數-1
        //引用計數為0時被回收


3、手動調用retain()防止被刪除

TestVO* vo = TestVO::create();//引用計數=1        
        vo->retain();//引用計數=2
        
        //......
        //幀結束 引用計數-1 值為1 不回收
        //......
        //下一幀開始時 引用計數+1 值為2
        //......
        
        //調用release()方法
        vo->release();//引用計數-1
        
        //......
        //幀結束 引用計數-1 值為0 被回收


4、被添加到cocos2d的數據結構時

        TestVO* vo = TestVO::create();//引用計數=1
        mList->pushBack(vo);//引用計數=2
        mList->popBack();//引用計數=1 能被回收
        
        Vector<TestVO*>* mList2 = new Vector<TestVO*>();
        mList2->pushBack(vo);//引用計數=2 無法被回收
        //如果mList2是局部變量,其他地方無法把vo從mList2中刪除,vo將無法被回收


5、類的成員

    如果是繼承Ref類型的數據,如果用create()創建,需要在創建后調用retain()函數,否則會在幀的結束被回收。

    如果是new的方法初始化的,不需要調用retain()

    刪除該數據或賦其他的值時,都需要調用release()方法

    new 的方法創建的可以用CC_SAFE_DELETE(vo)這種方式刪除。





向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

固原市| 大悟县| 铁岭市| 敖汉旗| 明光市| 融水| 盐池县| 南康市| 沁源县| 大理市| 洛宁县| 麻栗坡县| 徐闻县| 阿图什市| 萍乡市| 宁远县| 泽库县| 米易县| 宕昌县| 隆子县| 新龙县| 阳春市| 汝南县| 通化市| 辽阳市| 湟源县| 淮阳县| 朝阳市| 措美县| 临清市| 广河县| 宁阳县| 龙胜| 泰兴市| 万山特区| 乐平市| 合作市| 柘城县| 察隅县| 英超| 昌黎县|