Vor kurzem habe ich mir Quellcode von Drittanbietern angesehen, der einige Datentypen im Core Foundation-Framework betraf, und dabei auf einige Speicherverwaltungsabstürze gestoßen. Ich hoffe, hier Hilfe vom Master zu erhalten.
Frage:
//在网上例子上看到的这种方式创建的一个CFString的数组
CFStringRef keys[2];
keys[0] = CFSTR("key1");
keys[1] = CFSTR("key2");
//所以Core Foundation框架中的对象都不支持ARC,需要手动释放
CFRelease(keys);
Solange es läuft, kommt es zu folgendem Absturz
Aber ich habe den Code unten ausprobiert, einen CFStringRef erstellt und ihn dann manuell freigegeben, es war kein Problem
CFStringRef aSTR = CFSTR("A STRING");
CFRelease(aSTR);
Eigentlich bin ich ziemlich verwirrt über die Methode zum Erstellen von Arrays, die ich im Internet sehe. Ich habe im Internet nach der Verwendung des Core Foundation-Frameworks gesucht, aber es gibt immer noch relativ wenige und ich habe keine Ahnung, wie ich anfangen soll.
Ich warte online und hoffe auf eine effektive Antwort, danke~
keys 是指针变量 存在栈里 不用手动释放,
keys[0] keys[1] 才是 CFStr 需要手动释放