带有 FetchedResultsController

问题描述

我有一个属性 @NSManaged public var sectionKeyDate: Date? 我正试图用于 sectionKey。我在将 NSFetchedResultsSectionInfo 中的结果字符串格式化为 Date,然后再转换回格式化字符串时遇到问题。

override func tableView(_ tableView: UITableView,titleForHeaderInSection section: Int) -> String? {
        
        guard let sectionInfo = fetchedResultsController.sections?[section] else {
            return nil
        }
        
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-DD"
        print("sectionInfo.name: ",sectionInfo.name)
        print("Date: ",formatter.date(from: sectionInfo.name))
        
        guard let date = formatter.date(from: sectionInfo.name) else { return "Error" }
        let string = formatter.string(from: date)
        return string
    }

从字符串到日期的转换失败并返回 nil。

sectionInfo.name:  2021-03-25 05:00:00 +0000
Date:  nil

(1) 我不知道如何正确格式化。 (2) 我不完全确定对 Date 使用 sectionKeyPath 是否可以。

解决方法

问题在于获取正确的 dateFormat

        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ssZ"
        
        let date = formatter.date(from: sectionInfo.name)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...