我正在使用fs日历,并且我试图从名为dates的数组中设置事件点。此数组中包含以字符串形式保存的事件日期。所以我必须将每个索引转换为日期,然后为该日期设置一个事件点。 这是我尝试这样做的:
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
}
}
但没有任何反应,编译代码时没有事件点。我做错了什么?
答案 0 :(得分:2)
第一次建议,使用字典而不是日期数组,要求在字典中查找日期的要求不高
第二如果你需要在数组中使用值,那么你应该在中使用来 并直接使用对象,而不是索引来获取对象原始数组,也只声明一次日期格式化程序
第三次您需要使用func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int
,因为 func calendar(_calendar: FSCalendar!, hasEventForDate dateFormatter: DateFormatter) -> Bool
已被弃用
尝试使用此代码
func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy/MM/dd"
dateFormatter.locale = Locale.init(identifier: "fa_IR")
for dateStr in dates{
if(dateFormatter.string(from: date) == dateStr)
{
return 1
}
}
return 0
}