2016-06-25 6 views
0

Ich habe eine Todo-Liste App. innerhalb dieses Todolist habe ich Einzelteile, jedes Einzelteil haben Fälligkeitsdatum und Frequenz. ex: Item-Objektswift nsTimer zum Aktualisieren von Kerndaten

  • Name: pickup Sarah am Flughafen
  • DueDate: 06/26/16 (26 Juni)
  • Frequenz: wöchentlich

Wie automatisch eine neu planen Artikel? Apps lebendig, oder im Hintergrund etc ... in unserem Beispiel: Nach den 26/06/16, wird dieses Element automatisch auf 07/03/16 (03 Juli) neu planen wird

Soll ich NSTimer func eine Funktion aufrufen, um zu prüfen, ob ein Artikel neu geplant werden soll? :

Wo soll ich diesen NSTimer erstellen/initialisieren (in App-Delegaten und wie?) Hintergrundmodus?

Viel Frage auf meiner Seite? Hat jemand ein Beispiel für diese Art der Nutzung?

Es ist nicht nur ein NSTimer in einem UIViewController.

dank

Antwort

0

Wenn Sie die Web-Suche nach nsnotification local scheduled, eine der Websites, die aufkommt ist this, in dem er zeigt Ihnen, wie viel von dem tun, was Sie beschreiben. Insbesondere schließt seine Tutorial diesen Code:

private let ITEMS_KEY = "todoItems" 

func addItem(item: TodoItem) { // persist a representation of this todo item in NSUserDefaults 
    var todoDictionary = NSUserDefaults.standardUserDefaults().dictionaryForKey(ITEMS_KEY) ?? Dictionary() // if todoItems hasn't been set in user defaults, initialize todoDictionary to an empty dictionary using nil-coalescing operator (??) 

    todoDictionary[item.UUID] = ["deadline": item.deadline, "title": item.title, "UUID": item.UUID] // store NSData representation of todo item in dictionary with UUID as key 
    NSUserDefaults.standardUserDefaults().setObject(todoDictionary, forKey: ITEMS_KEY) // save/overwrite todo item list 

    // create a corresponding local notification 
    var notification = UILocalNotification() 
    notification.alertBody = "Todo Item \"\(item.title)\" Is Overdue" // text that will be displayed in the notification 
    notification.alertAction = "open" // text that is displayed after "slide to..." on the lock screen - defaults to "slide to view" 
    notification.fireDate = item.deadline // todo item due date (when notification will be fired) 
    notification.soundName = UILocalNotificationDefaultSoundName // play default sound 
    notification.userInfo = ["UUID": item.UUID, ] // assign a unique identifier to the notification so that we can retrieve it later 
    notification.category = "TODO_CATEGORY" 
    UIApplication.sharedApplication().scheduleLocalNotification(notification) 

Das Schlüsselkonzept Sie suchen ist eine UILocalNotification zu verwenden und die fireDate auf, dass ein.

+0

danke Feldur sehr nützliches Tutorial – h3630fr