Это то, для чего @properties
. Они управляют кодом получения и установки для вас, поэтому вам не нужно думать об этих вопросах.
.ч
@interface MyClass : NSObject
{
NSString *myString;
}
@property (nonatomic, retain) NSString *myString;
@end
.m
@implementation MyClass
@synthesize myString;
-(void)dealloc
{
[myString release];
[super dealloc];
}
@end
С этими вещами теперь можно говорить о self.myString
и не беспокоиться о памяти. Когда вы назначите ему, он сохранит. Если вы назначите снова, он освободит первый объект и сохранит новый. И тогда он будет сохраняться до тех пор, пока ваш viewcontroller не загрузится.
Вы можете во что бы то ни стало достичь той же цели с помощью iVar (что вы и делаете в своем примере кода), но тогда управление памятью остается за вами, и оно может быть немного сложным. Лучше всего использовать систему @property для правильного создания установочного кода для управления памятью.