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

最近在看第三方的源碼,涉及到了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 需要手動釋放

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板