ios – Speicherverwaltung: Problem mit der manuellen Veröffentlichung von CFStringRef
phpcn_u1582
phpcn_u1582 2017-06-10 09:48:13
0
1
825

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~

phpcn_u1582
phpcn_u1582

Antworte allen(1)
Ty80

keys 是指针变量 存在栈里 不用手动释放,
keys[0] keys[1] 才是 CFStr 需要手动释放

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage