Создание оповещения после определенного количества ланчей - PullRequest
5 голосов
/ 06 мая 2011

Эй, ребята! Я работал над этой идеей, когда хочу, чтобы UIAlert появлялся после определенного количества запусков приложения (скажем, после 20 запусков).

И там будет 2 кнопки. Тот, который сбросит счетчик, который заставит предупреждение появиться после следующих 20 запусков. И одна кнопка, которая заставит его исчезнуть и больше не появляться.

Ребята, есть ли у вас какие-либо предложения о том, как бы я это сделал? Какой-то код действительно может помочь мне! :)

Ответы [ 3 ]

4 голосов
/ 06 мая 2011

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

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
uint count = [defaults integerForKey:@"num_launches"];

if (count > 20) {
    // Show alert
} else {
   count ++;
   [defaults setInteger:count forKey:@"num_launches"];
}
3 голосов
/ 06 мая 2011

В вашем AppDelegate applicationDidFinishLaunching:withOptions: проверяйте метод 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 голос
/ 06 мая 2011

Установить счетчик. Увеличивайте его при каждом запуске приложения и сохраняйте в 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"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...