intsig171/SmartCodable

日志错误打印

Closed this issue · 9 comments

我加载的json数据正常,且有需要解析的字段,SmartLog error提示 错误类型: '找不到键的错误'

private func loadCircleData() {
        
        guard let path = Bundle.main.path(forResource: "circle_data", ofType: "json") else { return }
        
        do {
            let data = try Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe)
            let jsonArray = try JSONSerialization.jsonObject(with: data, options: .mutableLeaves)
            if let jsonArray = jsonArray as? [[String: Any]] {
                if let modelList = [TYCircleHomeListModel].deserialize(array: jsonArray) {
                    let randomList = modelList.shuffled().compactMap { $0 }
                    
                    if (self.pageIndex == 1) {
                        self.dataSource = randomList
                    }
                    
                    
                    if (self.pageIndex > 1) {
                        if (self.pageIndex >= 10) {
                            self.endRefreshing()
                            self.tableView.mj_footer?.state = .noMoreData
                            return
                        }
                        
                        self.dataSource.append(contentsOf: randomList)
                    }
                    
                    DispatchQueue.main.asyncAfter(deadline: .now()+1.25) {
                        self.tableView.reloadData()
                        self.endRefreshing()
                    }
                }
            }
        } catch {
            print("Error parsing JSON: \(error)")
        }
    }

============= 💔 [SmartLog Error] 💔 =============
错误类型: '找不到键的错误'
模型名称:Array
数据节点:Index 5
属性信息:videoUrl
错误原因: No value associated with key CodingKeys(stringValue: "videoUrl", intValue: nil) ("videoUrl").

是否可以提供测试用例。

是否可以提供测试用例。

circle_data.json

是否可以提供测试用例。

circle_data.json

json数据已提供

Model也给一下,最好能给个可以运行的demo。

Model也给一下,最好能给个可以运行的demo。

import SmartCodable

struct TYCircleHomeListModel: SmartCodable {
    
    /// 发帖时间
    var date: String = ""
    
    /// 发帖内容
    var content: String = ""
    
    /// 用户昵称
    var nickname: String = ""
    
    /// 头像URL
    var avatarUrl: String = ""
    
    /// 图片数组
    var images: [String] = []
    
    /// 视频URL
    var videoUrl: String = ""
    
    /// 数据类型1:图片   2:视频
    var sourceType: Int = 1
}

image
你Model中定义了7个需要解析的属性,数据中就只有4个字段,缺失了videoUrl,avatarUrl,sourceType。 日志给出提示是合理的。

image 你Model中定义了7个需要解析的属性,数据中就只有4个字段,缺失了videoUrl,avatarUrl,sourceType。 日志给出提示是合理的。

好的,谢谢了。这种提示是正向的,但感觉有些强提示了,哈哈

你可以更改日志的debug模式为warning。这样就只会提示类型不匹配的日志。

你可以更改日志的debug模式为warning。这样就只会提示类型不匹配的日志。

好的,我调整下。