Als Hinweis, die Neudeklaration vom Typ der Ivar in der @property
Anweisung kann auch nützlich sein, wenn Sie die Eigenschaft als unveränderlich Typ des Ivars, zum Beispiel erklären wollen:
@interface MyClass : NSObject
{
NSMutableArray *myArray;
}
@property (retain) NSArray *myArray;
In In diesem Fall wird der ivar tatsächlich als NSMutableArray
gespeichert und kann daher während des Lebenszyklus des Objekts geändert werden.
Dies ist jedoch ein internes Detail, und wenn Sie nicht "werben" wollen, ist es veränderbar (veränderbar), können Sie den Typ der Eigenschaft als unveränderlichen Typ festlegen - in diesem Fall eine NSArray
.
Obwohl dies nicht wirklich stoppen anderen Code mit dem zurückgegebenen Array als veränderbar, es ist gute Konvention und benachrichtigt anderen Code, dass es sollte nicht behandelt es auf diese Weise.
Ich wusste nicht darüber. Das ist ziemlich nett. Es ist eine Schande, dass es nicht auf dem Debugger angezeigt wird. –