2012-06-14 5 views
5

ich eine Eigenschaft someProperty deklariert haben und es synthetisiert:Getter-Methode für die Eigenschaft Abstürze mit EXC_BAD_ACCESS

@synthesize someProperty = _someProperty;

Aber wenn ich es in Code aufrufen, bekomme ich EXC_BAD_ACCESS in meinem Getter Overide-Methode. Warum??

- (NSString *) someProperty { <---EXC_BAD_ACCESS HERE 
    if(!self.someProperty) 
     return self.someOtherProperty; 
    return self.someProperty; 
} 

Antwort

9

Ich denke, Sie könnten einen Stack Overflow bekommen!, weil die Leitung

if(!self.someProperty) 

- (NSString *) someProperty 

rekursiv, bis die Rekursion Stack überläuft Aufruf wird.

Ähnlich, wenn es an die Rückleitung gelangen könnte, würde es das gleiche tun.

+0

duh - danke, funktioniert – user1337645

+5

+1: wir selten sehen Stapelüberlauf hier auf SO :) –

+1

@ user1337645: Abhilfe könnte mit ivar '_someProperty' zu halten Wert der Eigenschaft' someProperty' und dann in Getter würden Sie überprüfen für '_someProperty' anstelle von' self.someProperty'. Vergessen Sie bitte nicht, James 'Antwort zu akzeptieren, da es Ihnen geholfen hat, das Problem zu finden. –

Verwandte Themen