2016-11-07 1 views
0

Was in MRC geschah, wenn jemand die Freigabenachricht auf der Eigenschaft, die als assign deklariert wurde, anruft.Freigabe auf Zuweisungseigenschaft

In .h-Datei:

@property (assign) int count; 

in .m viewDidLoad Methode:

_count = 10; 
NSLog(_count); 
[_count release]; // According to me it may give EXC_BAD_ACCESS 
NSLog(_count); 

wollen Gerade weil bestätigen müssen nicht so viel alte Xcode, in dem ich MRC testen.

+0

Ein 'Release' auf einer' int' var? Ich verstehe nicht, wie es funktionieren soll, es sollte dich warnen. – Larme

+0

Ich bin mir ziemlich sicher, dass es Ihnen einen Compilerfehler geben wird, da int nicht von NSObject erbt, Sie können keine Version darauf aufrufen. – Windindi

+0

@Windindi: Schreiben Sie es als Antwort. –

Antwort

1

Ich bin mir ziemlich sicher, dass es Ihnen einen Compilerfehler geben wird, da int nicht von NSObject erbt, Sie können die Freigabe nicht aufrufen.

Wenn Sie ein NSObject mit schwacher Eigenschaft betrachten, stürzt es nicht sofort ab, wenn Sie die Freigabe aufrufen, da der ursprüngliche Eigentümer des Objekts die Anzahl der Objektreferenzen auf mindestens 1 erhöht hat. Wann wird der Eigentümer des Objekts freigegeben Die App wird abstürzen, weil sie versuchen wird, das Objekt freizugeben, da es der Eigentümer ist, aber das Objekt wurde freigegeben, weil ein Nicht-Besitzer seine Referenzanzahl falsch verringert hat.