Вопрос

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

программа.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
   ....
Это было полезно?

Решение

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

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

self.user_title = [array objectAtIndex:0];

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top