2010-08-09 5 views
5

Mi tuffo nello sviluppo di iOS e ho lavorato a un'app sveglia per familiarizzare con la piattaforma iOS e l'SDK. Uso le Notifiche locali per gestire i miei allarmi, ma ho bisogno di un metodo per gestire le Notifiche locali impostate in modo che possano essere aggiornate se modifico o rimuovo uno qualsiasi degli allarmi associati. Ho scoperto come posso annullare una notifica locale usando la funzione cancelLocalNotification: dopo che è stata programmata, ma ho difficoltà a capire come recuperare l'oggetto di notifica locale associato all'allarme che è stato modificato o rimosso in modo da poterlo usare funzione. Vorrei sottolineare che tutti i miei oggetti di allarme che vengono utilizzati per creare le notifiche locali vengono memorizzati in un database di dati Core e la loro interfaccia è definito come ...Qual è un buon modo per gestire le Notifiche locali che la tua app ha programmato?

@interface Alarm : NSManagedObject 
{ 
} 

@property (nonatomic, retain) NSNumber * Snooze; 
@property (nonatomic, retain) NSNumber * AlarmID; 
@property (nonatomic, retain) NSString * Label; 
@property (nonatomic, retain) NSDate * Repeat; 
@property (nonatomic, retain) NSDate * Time; 
@property (nonatomic, retain) NSNumber * Enabled; 
@property (nonatomic, retain) NSString * Song; 
@property (nonatomic, retain) NSString * Sound; 

@end 
  1. Che cosa è un buon modo per gestire il Notifiche locali Le mie app sono programmate in modo tale da poter recuperare successivamente gli oggetti di Notifica locale e riprogrammarli se necessario?
  2. C'è un modo per recuperare le notifiche locali che sono state programmate dalla tua app?
  3. Se è così, c'è un modo per identificarli in modo univoco?

Grazie mille in anticipo per il vostro aiuto!

risposta

16

Per rispondere alla domanda n. 2 utilizzare scheduledLocalNotifications, che restituirà all'utente NSArray di tutte le notifiche pianificate per la propria app.

Per rispondere alla domanda 3 utilizzare userInfo proprietà di classe UILocalNotification. È un dizionario e puoi salvare tutto ciò che vuoi lì.

+0

grazie, sha, sembra abbastanza semplice! – BeachRunnerFred

+0

Ciò consente di trovare in modo efficiente la voce del database per qualsiasi notifica specificata. Al contrario, trovare l'oggetto di notifica per una voce di database specifica richiederebbe la ricerca attraverso l'array scheduledLocalNotifications. È possibile memorizzare un puntatore in Dati principali? O non vi è alcuna garanzia che la notifica rimanga allo stesso indirizzo di memoria? Non che la ricerca attraverso un piccolo array sia un grosso problema. –

+0

'scheduledLocalNotifications' recupera solo' UILocalNotification's con proprietà 'repeatInterval' diversa da' nil'. – IgniteCoders

0
  1. È possibile recuperare tutte le notifiche locali pianificate dall'app utilizzando il metodo scheduleLocalNotifications delle classi di applicazione UIA.