2016-06-20 30 views

Antwort

0

Ich habe durch den Code geschaut und eine Lösung könnte den Wert Ihrer segmentedControl als Parameter für Ihre TodoItem hinzuzufügen, wie Sie bereits jetzt im Parameter gentag tun.

Dann in Ihrer addItem Methode, die Sie „nur“ müssen aus dem Int Wert, den Sie nun zu einem NSCalendarUnit konvertieren, die Sie Ihre notification.repeatInterval geben können.

zu halten, dieses hübsche könnten Sie einen neuen Enum zu schaffen, der wusste, wie Int-NSCalendarUnit Werte zu konvertieren, und dann gentag Parameter dieser Art sein könnte.

So in der Datei, wo Sie Ihre TodoSchedulingViewController Sie so etwas wie dies in der oben in der Datei schreiben konnte:

import UIKit 

enum RepeatInterval: Int { 
    case None = 0 
    case Daily = 1 
    case Weekly = 2 

    func toCalendarUnit() -> NSCalendarUnit { 
     switch self { 
     case .None: 
      return NSCalendarUnit(rawValue: 0) 
     case .Daily: 
      return NSCalendarUnit.Day 
     case .Weekly: 
      return NSCalendarUnit.Weekday 
     } 
    } 
} 

class TodoSchedulingViewController: UIViewController { 
... 

Welche Sie könnte dann wie folgt verwenden:

In Ihrem ViewController:

let todoItem = TodoItem(deadline:...., 
         title:...., 
         gentag: RepeatInterval(rawValue: segmentedControl.selectedSegmentIndex)!, //You can force unwrap here, because you know the value is always one you get from your segmentedControl 
         UUID......) 

In Ihrem TodoList Klasse:

... 
notification.userInfo = ["title" : item.title, "UUID" : item.UUID] 
notification.repeatInterval = item.gentag.toCalendarUnit() 

Hoffnung, die Sinn macht.

Oh ... und beim nächsten Mal bitte Ihren eigentlichen Code anstelle von Bildern zu veröffentlichen, es macht es einfacher, schnell zu sehen, was los ist und viel schnelles Code-Schnipsel aus dem Code in eine Antwort zu kopieren :)

+0

Wo soll der erste Teil Ihres Codes platziert werden? Das beginnt mit 'enum RepeatInterval' – Mksteffensen

+0

@Mksteffensen Ich habe meine Antwort aktualisiert :) – pbodsk

+0

Hallo nochmal, ich bekomme einen Fehler mehr, wenn ich den Code benutze, den du mir gegeben hast. Hier ist der Code, wo die Fehler sind: 'Gentag: RepeatInterval (rawValue: segmentierterControl.selectedSegmentIndex) !,' Hier ist der Fehler 'Kann Wert des Typs 'RepeatInterval' nicht konvertieren in den erwarteten Argumenttyp 'String'' – Mksteffensen