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 :)
Wo soll der erste Teil Ihres Codes platziert werden? Das beginnt mit 'enum RepeatInterval' – Mksteffensen
@Mksteffensen Ich habe meine Antwort aktualisiert :) – pbodsk
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