Переменная теряет свое значение (iPhone SDK) - PullRequest
0 голосов
/ 27 октября 2009

Я объявляю переменную в заголовочном файле и синтезирую ее в реализации. Когда представление загружается (ViewDidLoad), я читаю файл plist и заполняю переменную значением. С моим NSLog я вижу, что переменная содержит значение. Тем не менее, после загрузки представления, я имею некоторое взаимодействие с пользователем через кнопку, которая выполняет метод. В этом методе я снова проверяю значение, и оно недействительно. Почему переменная не сохраняет свое значение после начальной загрузки?

program.h

....
NSString * user_title;
...
@property (nonatomic, retain) NSString *user_title;

program.m

@synthesize user_title;

-(void)viewDidLoad{

    NSString *filePath = [self dataFilePath];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
    NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
    user_title = [array objectAtIndex:0];
    [array release];
}
    ....


-(IBAction)user_touch_screen:(id)sender
 {
    user_label.text = user_title;  //user_title has an invaliud value at this point
   ....

Ответы [ 2 ]

5 голосов
/ 27 октября 2009

user_title = [array objectAtIndex:0] не сохраняет переменную.

Используйте это вместо:

self.user_title = [array objectAtIndex:0];

Это будет использовать синтезатор, который вы синтезировали, и сохранит значение.

2 голосов
/ 27 октября 2009

Вам нужно сохранить значение, которое вы получите из массива.

...