在这种情况下,“ D”对于类型查找不明确

时间:2018-10-30 13:56:06

标签: json swift

我正在使用Xcode 10在Swift 4.2中遇到以下问题

enter image description here

我正在创建所有模型类。 API响应包含这种类型的JSON对象:

  --force-reinstall           Reinstall all packages even if they are already up-to-date.
  -I, --ignore-installed      Ignore the installed packages (reinstalling instead).

如何创建具有相同名称的类而没有歧义?

这是我的课程实现:

{  
   "d":{  
      "results":[  
         {  
            "__metadata":{  
               "id":"urls"
            }
         }
      ]
   }
}

2 个答案:

答案 0 :(得分:0)

您可以尝试

struct Root: Codable {
    let d: D
}

struct D: Codable {
    let results: [Result]
}

struct Result: Codable {
    let metadata: Metadata

    enum CodingKeys: String, CodingKey {
        case metadata = "__metadata"
    }
}

struct Metadata: Codable {
    let id: String
}

答案 1 :(得分:0)

不知道您的意图,但是要创建两个具有相同名称的类,您必须将它们嵌入某个父级中,然后像这样引用它们,以消除歧义。

此代码先打印3,然后“ blah”

import Foundation

class A {
    class D {
        let property = 3
    }
}

class B {
    class D {
        let property = "blah"
    }
}

class C {
    let d1 = A.D()
    let d2 = B.D()
}

let c = C()
print(c.d1.property)
print(c.d2.property)