Ios 如何从数组中显示fs日历中的事件点

Ios 如何从数组中显示fs日历中的事件点,ios,arrays,swift,fscalendar,Ios,Arrays,Swift,Fscalendar,我正在使用fs calendar,并尝试从名为dates的数组中设置事件点。此数组中有以字符串形式保存的事件日期。因此,我必须将每个索引转换为日期,然后为该日期设置一个事件点。 以下是我的尝试: if dates.isEmpty == false { func calendar(_calendar: FSCalendar!, hasEventForDate dateFormatter: DateFormatter) -> Bool { for i in 0...dates.

我正在使用fs calendar,并尝试从名为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

}
}
但是在编译代码时没有发生任何事情,也没有事件点。我做错了什么?

第一个建议,使用字典而不是日期数组,在字典中查找日期的要求较低

第二,如果需要在数组中使用值,那么应该在中使用,直接使用对象,而不是索引来获取原始数组中的对象,还应该只声明一次日期格式化程序

第三,您需要使用func calendar\u calendar:FSCalendar,numberofevents for date:date->Int,因为func calendar\u calendar:FSCalendar!,HasEventForDateFormatter: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
}