我在Swift中有一个模型类,其主要目的是包含一个自定义对象数组,但也有其他方法/属性等。
public class Budget: NSObject, NSCoding {
var lineItems : [LineItem] = []
// Other methods
// Other properties
}
据我了解,最佳做法是不要将该资产公开设置,但我希望它是可测试的,因此lineItems需要公开获取。
阅读文档,我可以这样做:
private(set) public var lineItems : [LineItem] = []
但是我必须编写很多样板代码来重新创建数组方法,例如insert,removeAtIndex等。
这里的最佳做法是什么?目前,我不需要在插入/删除项目时执行任何其他操作,但我想我将来可能需要进行验证或类似操作,但即使如此,编写仅重新创建的代码似乎也是多余的数组方法。
让lineItems公开获取和设置会更好吗?他们的环境是否有意义?
谢谢!
答案 0 :(得分:0)
Swift的Array
是一个(不可变的)值类型,这意味着
var a = ["object"]
var b = [String]()
b.append("object")
b == a // true
从这个角度来看,允许修改数组并且不允许设置它是没有意义的 - 修改基本上是创建新数组并将其分配给变量。