Проблемы с сохранением значений в NSUserDefaults - PullRequest
0 голосов
/ 20 июля 2011

У меня это как viewDidLoad:

- (void)viewDidLoad
{
    [super viewDidLoad];
    if (defaults == [cells objectAtIndex:0])
    {
        NSString * myFile = [[NSBundle mainBundle]pathForResource:@"cells" ofType:@"plist"];
        cells = [[NSMutableArray alloc]initWithContentsOfFile:myFile];
    }
    else
    {
        [defaults stringForKey:@"string1"];
    }
}

А для моего viewWillDisappear у меня есть:

-(void)viewWillDisappear:(BOOL)animated
{
    string1 = [cells objectAtIndex:0];
    [defaults setObject:string1 forKey:@"string1"];
}

Но я не могу получить данные для сохранения. Кто-нибудь знает, что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 20 июля 2011

defaults должен быть экземпляром NSUserDefaults:

defaults = [NSUserDefaults sharedUserDefaults];

Следовательно, if (defaults == [cells objectAtIndex:0]) не является допустимой строкой кода и никогда не будет равным, если вы не возитесь с ОЗУ.

В противном случае код выглядит нормально.

2 голосов
/ 20 июля 2011

Вы устанавливаете значения по умолчанию [NSUserDefaults standardUserDefaults] где-нибудь?Кроме того, почему вы сравниваете его с первым объектом в массиве клеток?Кажется странным.

В противном случае вы правильно поняли идею.Убедитесь, что метод viewWillDisappear действительно вызывается.Также вы можете позвонить [NSUserDefaults synchronize], чтобы немедленно сохранить изменения.

И последнее: вы ничего не делаете в этом блоке else {}.Вам необходимо присвоить значение [defaults stringForKey:@"string1"]; переменной, чтобы использовать ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...