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

标签 ios arrays swift fscalendar

我正在使用 fs 日历,并且尝试从名为日期的数组中设置事件点。该数组包含以字符串形式保存的事件日期。所以我必须将每个索引转换为日期,然后为该日期设置一个事件点。 这是我的尝试:

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

}
}

但是当我编译代码时没有任何反应,也没有事件点。我做错了什么?

最佳答案

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

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

第三你需要使用func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int because 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
}

关于ios - 如何从数组显示 fs 日历中的事件点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46267295/

相关文章:

objective-c - 尝试使用 2 个 UIButtons 创建 View 时出现错误

ios - 将 iOS 应用程序带到前台时更改屏幕

c++ - 如何从 C++ 中的文件中读取乘法字符数组

javascript 方法 array.shift() 返回未定义

ios - 使用 swift 以编程方式更改 View 的高度和宽度会导致 iOS 出现意外行为

swift - 如何使用 XCTest 对离线场景进行单元测试

ios - NetworkReachabilityManager 或 Reachability 无法识别在没有互联网的情况下连接 wifi

ios - 核心数据 : ObjectID Error: "No known class method for selector ' managedObjectContext'

ios - 为什么 beginBackgroundTaskWithExpirationHandler 允许 NSTimer 在后台运行?

c# - ByteArray 数组到 MemoryStream