#iphone #objective-c #uialertview #alert
#iPhone #objective-c #uialertview #предупреждение
Вопрос:
Я работаю над этой идеей, в которой я хочу, чтобы UIAlert появлялся после определенного количества запусков приложения (скажем, после 20 запусков).
И там будет 2 кнопки. Тот, который сбросит счетчик, который заставит предупреждение появиться еще после 20 запусков. И одна кнопка, которая заставит его исчезнуть и больше никогда не появляться.
Как бы я это сделал?
Ответ №1:
Взгляните на NSUserDefaults, чтобы сохранить количество запусков приложения.
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
uint count = [defaults integerForKey:@"num_launches"];
if (count > 20) {
// Show alert
} else {
count ;
[defaults setInteger:count forKey:@"num_launches"];
}
Комментарии:
1. Вы не определяете, что пользователь отменяет оповещение навсегда
2. Нет — я не делал за него его работу, я показал ему, как использовать NSUserDefaults 🙂 (* предполагая, что inFever — это он)
Ответ №2:
В вашем applicationDidFinishLaunching:withOptions:
методе AppDelegate проверьте NSUserDefaults
:
int counter = [[NSUserDefaults standardUserDefaults] integerForKey:@"LaunchesCounter"];
if (counter == -1)
{ /* Cancel chekcing, cause earlier user choose hide alert */ }
else if (counter >= 20)
{ /* Show alert */ }
else // Increment counter
{
counter;
[[NSUserDefaults standardUserDefaults] setInteger:counter forKey:@"LaunchesCounter"];
}
Если пользователь выберет продолжить, счетчик перезаписи предупреждения будет отображаться с 0:
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"LaunchesCounter"];
Если пользователь решит скрыть оповещения, установите счетчик на -1:
[[NSUserDefaults standardUserDefaults] setInteger:-1 forKey:@"LaunchesCounter"];
Комментарии:
1. Не могли бы вы, пожалуйста, взглянуть на мой код и посмотреть, не сделал ли я что-нибудь не так?
Ответ №3:
Настройте счетчик. Увеличивайте его при каждом запуске приложения и сохраняйте в NSUserDefaults
. Проверяйте его каждый раз, чтобы убедиться, что оно меньше 20. Если оно равно 20, сбросьте и сохраните снова. Это помогает увеличить количество запусков
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSInteger launchCount = [prefs integerForKey:@"launchCount"];
if (launchCount > limit) {
// Show alert
} else {
launchCount ;
[prefs setInteger:count forKey:@"launchCount"];
}
launchCount ;
NSLog(@"Application has been launched %d times", launchCount);
[prefs setInteger:launchCount forKey:@"launchCount"];