I'm using fs calendar and i'm trying to set event dots from an array named dates. this array has event dates in it that are saved in string form. so i have to convert each index to date and then set an event dot for that date. here is my attempt to do so:
if dates.isEmpty == false {
func calendar(_calendar: FSCalendar!, hasEventForDate dateFormatter: DateFormatter) -> Bool {
for i in 0...dates.count - 1 {
let dateFormatter = DateFormatter ()
dateFormatter.dateFormat = "yyyy/MM/dd"
dateFormatter.locale = Locale.init(identifier: "fa_IR")
dateFormatter.date(from: dates[i])
dateFormatter.dateFormat = "yyyy/MM/dd"
return true
}
return false
}
}
but nothing happens and there is no event dot when i compile the code. what am i doing wrong?
First recommendation, use a dictionary instead of array of dates, is less demanding to lookup dates in a dictionary
Second if you need use values in an array then you should use for in and use objects directly, not index to get objects in the original array, also declare the date formatter only once
Third you need use
func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int
becausefunc calendar(_calendar: FSCalendar!, hasEventForDate dateFormatter: DateFormatter) -> Bool
is deprecatedTry with this code