Cocos2d-x ๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ
Objective-C ๊ธฐ๋ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ชจ๋ธ์ธ Reference Counting https://www.programering.com/a/MTN3cjMwATg.html cocos2d-x์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ๋ํด ์ ์ ๋ฆฌ๋ ๊ธฐ์ฌ๋ฅผ ๋ฐ๊ฒฌ. ์ฐธ๊ณ ์ฉ์ผ๋ก ๋ฒ์ญ(์์ญ)ํด์ ์ ๋ฆฌํ๋ค. Object-C ๋ก๋ถํฐ ์ด์ ๋ cocos2d-x์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋, ๊ทธ ๋์, Object-C์ ๋ํด ์ ์ ์ด ์์๋ C++ ๊ฐ๋ฐ์๋ค์๊ฒ ํฐ ํผ๋์ ์๊ฒจ์ค๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ํ ์ดํด ์์ด ์ข์ C++ ํ๋ก์์ ธ๋ฅผ ์์ฑํ ์๋ ์๊ธฐ์, ์ ๋ OC์ cocos2d-x ์์ชฝ ๋ชจ๋์ ๊ฒฝํ์ ๊ฐ์ง๊ณ ์์ด, cocos2d-x๊ฒ์์ ๊ฐ๋ฐํ๋ ๋ถ๋ค์๊ฒ ๋์์ ์ค ์ ์์๊น ํ๋ ๋ง์์ผ๋ก ์ด ํฌ์คํธ๋ฅผ ์์ฑํฉ๋๋ค. C++์ ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋, '๋๊ฐ ๋๊ตฌ์๊ฒ Release ์์น์ ์ ์ฉํ๋๊ฐ' ์ฆ, 'Object๋ฅผ ์์ฑํ๋ new ์ฐ์ฐ์๋ถํฐ, ์ญ์ ํ๋ delete ์ฐ์ฐ๊น์ง, ๋๊ฐ ์ฑ
์์ ๊ฐ์ง๊ณ ์๋๊ฐ ' ์ ์ฃผ์ ๋
ผ์ ์ด ์์ต๋๋ค. ๋ง์ฝ function ์์์ object์ life-cycle์ด ๋ชจ๋ ์ด๋ฃจ์ด์ง๋ค๋ฉด, ๊ทธ์ function์ return๋ฌธ ์ง์ ์ ์ญ์ ํ๋ ๊ฒ ๋ง์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. ํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก, ์ฐ๋ฆฌ๋ new๋ก๋ถํฐ function body ๋ฐ๊น์ง์ life-cycle์ ๊ฐ์ง๋ function์ ๋ง๋๋๋ฐ ๊ทธ๋ ์ง ์๋๋ค๋ฉด, ์ฐ๋ฆฌ๋ Object๋ค์ Stack์ ์ง์ ์์ฑํจ์ผ๋ก์จ, Dynamic Memory(Heap)์ ์ฌ์ฉํ์ง ์๊ณ , ๋ฐ์ํ๋ ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋ฅผ ๋ง์ ์ ์์ ๊ฒ์
๋๋ค. (๋ฌผ๋ก , ์คํ์ ํฐ Object๋ฅผ ํ ๋นํ๋ ๊ฒ์ ์ณ์ง ์์ต๋๋ค.) ๋ง์ฝ, function ๋ฐ์์ life-cycle์ ๊ฐ์ง๋ Object๋ฅผ ๋ค๋ฃฌ๋ค๋ฉด, ์ฐ๋ฆฌ๋ ๋๊ตฌ์๊ฒ Release ์์น์ ์ ์ฉ์์ผ์ผ ํ ์ง ์ ๋งคํด ์ง ๊ฒ์ด๊ณ , Object๋ฅผ Release ์ํฌ ์ ์ ํ (๋ค๋ฅธ) ์ฅ์๋ฅผ ๊ฐ์ ธ์ผ๋ง ํ ๊ฒ์ด๋ฉฐ, ๋ง์ฝ ๊ทธ Object๊ฐ ๋ค์ํ Obj...