在swift中存储嵌套数据的最佳方法

时间:2016-07-05 05:46:54

标签: swift class

给出诸如

之类的对象
objA{
  name: "A Name"
  subObj: {
    name: "A Sub Name"
  }
}

在swift中存储这个的最佳方法是什么?我想创建一个Object A类,然后在该类中包含一个包含subObj的值。但是,subObj是否也有自己的类?对于大数据结构,这种方法似乎会导致疯狂的类声明数量?

1 个答案:

答案 0 :(得分:1)

恕我直言,没有最好的方式来创建这种东西。这取决于您喜欢什么,您想要存储的数据以及嵌套的深度。

我会在这里展示一些。

  1. 课程和结构
  2. 您刚刚创建了一些具有所需属性和子对象的类和/或结构。您的示例对象的类可能如下所示

    class ObjectA {
        let name: String
        let subObj: SubObject
    
        init(name: String, subObj: SubObject) {
            self.name = name
            self.subObj = subObj
        }
    }
    
    class SubObject {
        let name: String
        init(name: String) {
            self.name = name
        }
    }
    

    当然,你应该有意义地为你的课程命名。

    1. 元组
    2. 这对于只有1级嵌套的对象最好。你可以用2来做到这一点,但它看起来很难看。 不要超过3,不能理解。

      这是一个嵌套的元组:

      let tuple: (String, (String, String)) = ...
      

      如果你使用3个以上的嵌套级别,那么人们需要花很长时间来弄清楚你的意思:

      let tuple: (String, (String, (String, (String, (String, String))))) = ...
      
      1. 财产清单
      2. 这可以最好地用于存储大量的常量数据,这些数据太冗长而无法在代码中创建。只需将新属性列表文件添加到项目中,然后使用NSBundle方法之一进行阅读。

        您对象的属性列表如下所示:

        enter image description here

        1. JS​​ON
        2. 就我个人而言,我认为当与SwiftyJSON等JSON解析库结合使用时,JSON非常方便 。您对象的JSON表示形式如下:

          objA: {
              name: "A Name",
              subObj: {
                  name: "A Sub Name"
              }
          }