2010-08-09 2 views
5

Ich tauche in die iOS-Entwicklung und habe an einer Wecker-App gearbeitet, um mich mit der iOS-Plattform und dem SDK vertraut zu machen. Ich verwende lokale Benachrichtigungen, um mit meinen Alarmen umzugehen, aber ich benötige eine Methode zur Verwaltung der von mir festgelegten lokalen Benachrichtigungen, damit sie aktualisiert werden können, wenn ich einen der damit verbundenen Alarme bearbeite oder lösche. Ich habe herausgefunden, wie ich eine lokale Benachrichtigung unter Verwendung der Funktion cancelLocalNotification: nach der geplanten Zeit verschieben kann, aber es fällt mir schwer herauszufinden, wie das mit dem bearbeiteten oder entfernten Alarm verbundene lokale Benachrichtigungsobjekt abgerufen wird Funktion. Ich sollte anmerken, dass alle meine Alarmobjekte, die die lokale Benachrichtigungen werden verwendet, um in einem Core Data DB gespeichert werden und deren Schnittstelle ist definiert als ...Wie können Sie die von Ihrer App geplanten lokalen Benachrichtigungen verwalten?

@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. Was ein guter Weg ist die Verwaltung Lokale Benachrichtigungen, die in meiner App geplant werden, damit ich diese lokalen Benachrichtigungsobjekte später abrufen und bei Bedarf neu planen kann?
  2. Gibt es eine Möglichkeit zum Abrufen der lokalen Benachrichtigungen, die von Ihrer App geplant wurden?
  3. Wenn ja, gibt es eine Möglichkeit, sie eindeutig zu identifizieren?

Vielen Dank im Voraus für Ihre Hilfe!

Antwort

16

Um Frage # 2 zu beantworten, verwenden Sie scheduledLocalNotifications, die Ihnen NSArray aller geplanten Benachrichtigungen für Ihre App zurückbekommt.

Um Frage # 3 zu beantworten, verwenden Sie userInfo Eigentum der UILocalNotification Klasse. Es ist ein Wörterbuch und Sie können alles, was Sie wollen, dort speichern.

+0

danke, sha, scheint einfach genug! – BeachRunnerFred

+0

Damit können Sie den Datenbankeintrag für eine bestimmte Benachrichtigung nur effizient finden. Umgekehrt würden Sie beim Suchen des Benachrichtigungsobjekts für einen bestimmten Datenbankeintrag das Array "displanedLocalNotifications" durchsuchen müssen. Ist es möglich, einen Zeiger in Core Data zu speichern? Oder gibt es keine Garantie, dass die Benachrichtigung an der gleichen Speicheradresse bleibt? Nicht, dass die Suche durch ein kleines Array so eine große Sache ist. –

+0

'planedLocalNotifications' ruft nur' UILocalNotification' mit der Eigenschaft 'repeatInterval' auf, die sich von' nil' unterscheidet. – IgniteCoders

0
  1. Sie können alle lokalen Benachrichtigungen abrufen, die Ihre App mithilfe der UIApplication-Klasse planedLocalNotifications geplant hat.
Verwandte Themen