在SwiftyJSON中,array,arrayValue和arrayObject有什么区别?

时间:2017-10-02 19:28:40

标签: json swift optional swifty-json anyobject

我正在努力更好地了解每个人都有不同的用例。

据我所知:

  • 数组:是一个简单的可选数组。
  • arrayValue:是一个非可选数组,如果它是nil

  • ,它将返回一个空数组
  • 但我无法正确理解你想在哪里使用arrayObject?当实体不是JSON时,您似乎会使用它。但是我无法理解为什么/怎么可能不是JSON,是关于我们自己制作的自定义对象呢?

这是与数组相关的JSON extension

extension JSON {

    //Optional [JSON]
    public var array: [JSON]? {
        if self.type == .array {
            return self.rawArray.map { JSON($0) }
        } else {
            return nil
        }
    }

    //Non-optional [JSON]
    public var arrayValue: [JSON] {
        return self.array ?? []
    }

    //Optional [Any]
    public var arrayObject: [Any]? {
        get {
            switch self.type {
            case .array:
                return self.rawArray
            default:
                return nil
            }
        }
        set {
            if let array = newValue {
                self.object = array as Any
            } else {
                self.object = NSNull()
            }
        }
    }
}

0 个答案:

没有答案