Ich verstehe, dass beginnend mit iOS 4, gibt es jetzt die Möglichkeit, nicht deklarieren iVars überhaupt, und lassen Sie den Compiler automatisch erstellen sie für Sie, wenn Sie die Eigenschaft zu synthetisieren. Ich kann jedoch keine Dokumentation von Apple zu dieser Funktion finden.
Gibt es außerdem eine Dokumentation über bewährte Verfahren oder von Apple empfohlene Richtlinien zur Verwendung von iVars und Eigenschaften? Ich habe immer Eigenschaften wie diese verwendet:
.h-Datei
@interface myClass {
NSIndexPath *_indexPath
}
@property(nonatomic, retain) NSIndexPath *indexPath
@end
.m-Datei
@implementation myClass
@synthesize indexPath = _indexPath;
- (void)dealloc {
[_indexPath release];
}
@end
Ich verwende _indexPath anstelle von indexPath als meinen iVar-Namen, um sicherzustellen, dass ich niemals indexPath
wenn ich Folgendes verwenden muss self.indexPath
. Aber jetzt, wo iOS automatische Eigenschaften unterstützt, muss ich mir darüber keine Gedanken mehr machen. Allerdings, wenn ich die iVar-Deklaration weglassen, wie sollte ich es in meinem dealloc freigeben behandeln? Mir wurde beigebracht, iVars beim Freigeben in dealloc direkt zu verwenden, anstatt die Eigenschaftsmethoden zu benutzen. Wenn ich zur Entwurfszeit keinen iVar habe, kann ich stattdessen einfach die Eigenschaftsmethode aufrufen?