CGRect var als Eigenschaftswert?

8

CGRect-Typ ist ein Strukturtyp. Wenn ich eine Eigenschaft als diesen Typ definieren möchte, sollte ich Attribut für diesen Typ zuweisen oder beibehalten?

%Vor%

oder muss ich meinen eigenen Getter und Setter schreiben?

    
David.Chu.ca 04.06.2010, 06:01
quelle

2 Antworten

17

Nur assign ist für Nicht-Objekte möglich. (Vor ARC, das CoreFoundation-Zeug enthält, kann z. B. ein CFArrayRef nur assign sein.)

%Vor%

Sie benötigen keinen benutzerdefinierten Getter und Setter, es sei denn, Sie möchten memcpy nicht für die Zuweisung verwenden.

    
kennytm 04.06.2010, 06:09
quelle
1
%Vor%

CGrect ist eine Struktur, keine NSObject , daher können Sie keine Nachricht an sie senden (wie retain ).

Sie sind voll eingerichtet, dann wird etwas wie folgt aussehen:

%Vor%

und

%Vor%

Sie können also im Grunde Folgendes tun:

%Vor%

Die Syntheserichtlinie macht grundsätzlich zwei Methoden (Getter / Setter) für Sie "hinter den Kulissen"; etwas wie ...

%Vor%

Normalerweise füge ich meinen Instanzvariablen ein "_" hinzu. Die rect=_rect weist den Compiler an, die _rect-Instanzvariable zu ändern, wenn die rect-Eigenschaft "aufgerufen" wird.

Lesen Sie diese Tutorials auf Theocaco . Er erklärt, was das @synthesize (r) hinter den Kulissen macht.

    
typeoneerror 04.06.2010 06:10
quelle

Tags und Links