2011-05-06 11 views
5

¡Hola chicos! He estado trabajando en esta idea donde quiero que aparezca un UIAlert después de una cierta cantidad de lanzamientos de la aplicación (digamos después de 20 lanzamientos).Haciendo un aperitivo de alerta después de una cierta cantidad de lanuches

Y habrá 2 botones. Uno que reiniciará el contador que hará que la alerta aparezca después de que se inicien otros 20. Y un botón que lo hará desaparecer y nunca volverá a aparecer.

¿Tienen alguna sugerencia sobre cómo podría hacer esto? ¡Algún código podría ayudarme realmente! :)

Respuesta

3

En su AppDelegate applicationDidFinishLaunching:withOptions: cheque método 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"]; 
} 

Si el usuario elija Continuar para mostrar contador de reescritura de alerta con 0:

[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"LaunchesCounter"]; 

Si el usuario elige ocultar alertas establecen en contra de -1:

[[NSUserDefaults standardUserDefaults] setInteger:-1 forKey:@"LaunchesCounter"]; 
+0

¿Podría mirar mi código? y ver si he hecho algo mal? – inFever

1

Configura un contador. Increméntelo cada vez que la aplicación se inicie y almacénelo en NSUserDefaults. Verifíquelo cada vez para asegurarse de que sea menor que 20. Si es igual a 20, reinícielo y almacénelo nuevamente. Esto ayuda a que el recuento de lanzamiento

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"]; 
4

Tome un vistazo a NSUserDefaults para almacenar un recuento del número de veces que se ha iniciado la aplicación.

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

if (count > 20) { 
    // Show alert 
} else { 
    count ++; 
    [defaults setInteger:count forKey:@"num_launches"]; 
} 
+0

Usted no define a ese usuario para cancelar las alertas por siempre – 5hrp

+1

No, no he hecho su trabajo por él, le he mostrado cómo usar NSUserDefaults :) (* suponiendo que sea un he) – deanWombourne

Cuestiones relacionadas