застрял на NSUserDefaults - PullRequest
       4

застрял на NSUserDefaults

0 голосов
/ 26 марта 2012

немного нуба здесь. Я не смог решить мою проблему, прочитав эти доски - может кто-нибудь заметить проблему с этим:

У меня есть ярлык, который я хотел бы обновлять ежедневно, я пытался сделать это с помощью NSUserDefaults.

    -(id)init{
    ...
    ...
    NSDate *date = [NSDate date];
    NSString *todaysDate = [NSString stringWithFormat:@"%@", date];

    [self createLabel:todaysDate];
    }

    -(void)createLabel:(NSString*)theDate{

     if([[NSUserDefaults standardUserDefaults] objectForKey:theDate] == nil){

     myLabel.text = [someOtherClass getAppropriateString];

    [[NSUserDefaults standardUserDefaults] setObject:[mylabel text] forKey:theDate];

}else{

    myLabel.text = [[NSUserDefaults standardUserDefaults] stringForKey:theDate]

  }

 }

РЕДАКТИРОВАТЬ:

Спасибо за вашу помощь, ребята. При написании этого вопроса я действительно осознал свою ошибку!

Только что сделал быстрый тест.

Если кому-то интересно: строка с сегодняшней даты включает минуты и секунды, то есть каждый раз, когда я запускаю приложение и сохраняю его как NSUserDefault, она будет отличаться.

Я добавил форматер даты, и теперь он работает.

Ответы [ 3 ]

1 голос
/ 26 марта 2012

Вы, вероятно, забыли synchronize свои изменения.Добавьте строку [[NSUserDefaults] synchronize]; после строки setObject:forKey:

0 голосов
/ 08 июня 2012
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateStyle:NSDateFormatterStyleLong];
NSString *todaysDate = [dateFormatter stringFromDate:date];
0 голосов
/ 26 марта 2012

Попробуйте это

-(void)createLabel:(NSString*)theDate
{
     if([[NSUserDefaults standardUserDefaults] objectForKey:theDate] == nil){
         myLabel.text = [someOtherClass getAppropriateString];

         [[NSUserDefaults standardUserDefaults] setObject:[mylabel text] 
                                                   forKey:theDate];
         [[NSUserDefaults standardUserDefaults] synchronize];
     }else{
         myLabel.text = [[NSUserDefaults standardUserDefaults] objectForKey:theDate];
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...