Baru-baru ini saya sedang melihat kod sumber pihak ketiga, yang melibatkan beberapa jenis data dalam rangka kerja Asas Teras, dan mengalami beberapa ranap pengurusan memori. Saya telah melupakan banyak perkara tentang suara C. Saya berharap mendapat bimbingan daripada tuan di sini.
Soalan:
//在网上例子上看到的这种方式创建的一个CFString的数组
CFStringRef keys[2];
keys[0] = CFSTR("key1");
keys[1] = CFSTR("key2");
//所以Core Foundation框架中的对象都不支持ARC,需要手动释放
CFRelease(keys);
Selagi ia berjalan, ranap berikut akan berlaku
Tetapi saya mencuba kod di bawah, mencipta CFStringRef dan kemudian mengeluarkannya secara manual, tiada masalah
CFStringRef aSTR = CFSTR("A STRING");
CFRelease(aSTR);
Sebenarnya, saya agak keliru tentang kaedah mencipta tatasusunan yang saya lihat di Internet. Saya menyemak di Internet tentang penggunaan rangka kerja Asas Teras, tetapi masih terdapat sedikit, dan saya tidak tahu bagaimana untuk bermula.
Menunggu dalam talian, dengan harapan mendapat jawapan yang berkesan, terima kasih~
kunci ialah pembolehubah penunjuk dan disimpan dalam timbunan Ia tidak perlu dikeluarkan secara manual
kunci[0][1] ialah CFStr dan perlu dikeluarkan secara manual.