#iphone #ios #ipad #nsuserdefaults
#iPhone #iOS #iPad #nsuserdefaults
Вопрос:
Я пытаюсь использовать NSUserDefaults для отслеживания некоторых рекламных данных в моем приложении для iOS, но это работает не так, как я ожидал. Вот код…
NSString *promoID = [[[self currentPromo] allKeys] objectAtIndex:0];
if(![[NSUserDefaults standardUserDefaults] boolForKey:[NSString stringWithFormat:@"promoid-%@", promoID]])
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:[NSString stringWithFormat:@"promoid-%@", promoID]];
.
.
.
Каждый раз, когда выполняется этот оператор if, выполняется код внутри. Разве код внутри этого оператора if не должен выполняться только один раз?
Большое спасибо за вашу мудрость!
Комментарии:
1. где вы написали этот код if? каким методом? как ты это называешь?
2. вы используете пакет настроек?
Ответ №1:
Зависит от того, как быстро вы повторите это снова.
Значения NSUserDefaults не синхронизируются мгновенно. Если вы хотите это сделать, вам нужно вызвать [[NSUserDefaults standardUserDefaults] synchronize];
после установки значения.
Комментарии:
1. спасибо, это исправлено! Я приму ваш ответ, как только пройдет десять минут. еще раз спасибо!
Ответ №2:
Используйте ключевое слово synchronize для извлечения ваших данных в NSUserDefaults
[[NSUserDefaults standardUserDefaults] синхронизация];
Это позволит извлечь и отобразить данные.
Комментарии:
1. Большое спасибо, я этого не делал и чуть не сошел с ума, много танков!