Да, вам нужно сохранить переменную pPath, если вы получите ее таким образом. Однако это еще не конец истории - вам также нужно сбросить предыдущее значение, иначе оно просто утечет.
Для упрощения вы можете использовать свойства target-c, которые позволяют автоматически генерировать методы установки / получения с желаемым поведением управления памятью:
// header
@interface MainViewController : UIViewController {
NSString *pPath;
}
@property (nonatomic, retain) NSString* pPath;
// implementation
@synthesize pPath;
- (void) initPrefsFilePath {
NSString *documentsDirectory =
[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
self.pPath = [documentsDirectory stringByAppendingPathComponent:
@"flippingprefs.plist"];
}
Здесь в строке self.pPath=...
будет вызываться автоматически сгенерированный метод установки, который:
- Выпустит ранее установленное значение pPath
- Назначит новое значение pPath и сохранит его
Вам также необходимо освободить переменную pPath в методе dealloc:
-(void) dealloc{
[pPath release];
//or
self.pPath = nil;
[super dealloc];
}