ios - 記憶體管理:CFStringRef 手動釋放的問題
phpcn_u1582
phpcn_u1582 2017-06-10 09:48:13
0
1
742

最近在看第三方的源碼,涉及到了Core Foundation框架裡的一些資料類型,遇到了一些記憶體管理的崩潰,C語音的很多東西都忘記了,希望在這裡能得到大神的指導。

問題:

//在网上例子上看到的这种方式创建的一个CFString的数组 CFStringRef keys[2]; keys[0] = CFSTR("key1"); keys[1] = CFSTR("key2"); //所以Core Foundation框架中的对象都不支持ARC,需要手动释放 CFRelease(keys);

只要運行就會出現如下的當機

#但是我試了下邊的程式碼,建立一個CFStringRef,然後手動釋放,是沒問題的

CFStringRef aSTR = CFSTR("A STRING"); CFRelease(aSTR);

其實對於網路上看到的那種創建數組的方式也比較蒙圈,在網上查了關於Core Foundation框架的用法還是比較少的,完全無從下手。

線上等,希望能得到有效地解答,謝謝啦~

phpcn_u1582
phpcn_u1582

全部回覆 (1)
Ty80

keys 是指標變數 存在堆疊裡 不用手動釋放,
keys[0] keys[1] 才是 CFStr 需要手動釋放

    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!