【问题标题】:Array of optional ?? NSNull() - Expression was too complex to be solved in reasonable time可选数组?? NSNull() - 表达式太复杂,无法在合理的时间内解决
【发布时间】:2018-10-21 10:38:44
【问题描述】:

我在我的项目中添加了一个 SDK,但该方法存在问题。说操作太复杂,应该分了。
我有 3 个问题:

  1. 这个编译错误是否与swift版本有关,我的意思是这个错误是否存在于不同的swift版本中?
  2. 当变量中存在 nil 时,为什么有人要写 NSNULL?
  3. 如果我想暂时解决问题(直到 sdk 更新)我应该怎么做?

错误:

表达式太复杂,无法在合理的时间内解决;考虑 将表达式分解为不同的子表达式

代码:

import SwiftyJSON

func toJSON() -> JSON {
        var result: JSON = ["id": id ?? NSNull(),
                            "uId": uId ?? NSNull(),
                            // ten other elements ]
        return result
}

【问题讨论】:

  • 什么是JSON
  • @Carpsen90 在 SwiftyJSON 中声明。
  • 自从引入Codable 以来,任何from-and-to-JSON 库看起来都很差????实际上像 SwiftyJSONObjectMapper 这样的库已经过时了。使用Codable
  • 你应该在你的问题中提到这一点,正如 Vadian 先生所说,可编码结构更容易使用
  • @Carpsen90 好的,谢谢

标签: swift swifty-json


【解决方案1】:

1) 我不这么认为。我相信这是编译器问题

2) 你不能在集合中添加 nil,所以如果你想放置一个 'filler',通常使用 NSNull

3) 使用 JSON 初始化器

    let item1: (String, Any) = ("id", id ?? NSNull())
    let result = JSON(elements: item1, item2, ... )

    return result

【讨论】:

    猜你喜欢
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    相关资源
    最近更新 更多