数组作为Swift属性的最佳实践

时间:2015-06-05 09:54:12

标签: swift

我在Swift中有一个模型类,其主要目的是包含一个自定义对象数组,但也有其他方法/属性等。

public class Budget: NSObject, NSCoding {
  var lineItems : [LineItem] = []

  // Other methods

  // Other properties

}

据我了解,最佳做法是不要将该资产公开设置,但我希望它是可测试的,因此lineItems需要公开获取。

阅读文档,我可以这样做:

 private(set) public var lineItems : [LineItem] = []

但是我必须编写很多样板代码来重新创建数组方法,例如insert,removeAtIndex等。

这里的最佳做法是什么?目前,我不需要在插入/删除项目时执行任何其他操作,但我想我将来可能需要进行验证或类似操作,但即使如此,编写仅重新创建的代码似乎也是多余的数组方法。

让lineItems公开获取和设置会更好吗?他们的环境是否有意义?

谢谢!

1 个答案:

答案 0 :(得分:0)

Swift的Array是一个(不可变的)值类型,这意味着

var a = ["object"]
var b = [String]()
b.append("object")
b == a // true

从这个角度来看,允许修改数组并且不允许设置它是没有意义的 - 修改基本上是创建新数组并将其分配给变量。