Swift 为什么Realm建议使用该列表<;T>;属性必须使用;“让我来吧?”;?
域的文档使用Swift 为什么Realm建议使用该列表<;T>;属性必须使用;“让我来吧?”;?,swift,realm,Swift,Realm,域的文档使用let声明其列表属性: class Person: Object { // ... other property declarations let dogs = List<Dog>() } 类人物:对象{ //…其他财产声明 让狗进来 } 当使用动态var声明其他域属性类型时,为什么使用let声明此列表属性?列表属性应使用let声明,因为域无法拦截对这些属性的分配。分配给列表属性不会导致您的更改持久化到域文件。通过使用let而不是var声明属性,您可以
let
声明其列表
属性:
class Person: Object {
// ... other property declarations
let dogs = List<Dog>()
}
类人物:对象{
//…其他财产声明
让狗进来
}
当使用动态var
声明其他域属性类型时,为什么使用let
声明此列表
属性?列表
属性应使用let
声明,因为域无法拦截对这些属性的分配。分配给列表
属性不会导致您的更改持久化到域文件。通过使用let
而不是var
声明属性,您可以让Swift编译器检测到不符合您意愿的代码
您不应该将属性赋值给List
属性,而应该通过List
所遵循的协议中的方法来改变属性的现有值
例如,要添加新狗,请执行以下操作:
person.dogs.append(lassie)
或更换现有狗只:
person.dogs.replaceSubrange(0..<person.dogs.count, with: [fido, spot])
person.dogs.replaceSubrange(0..相同的逻辑适用于RealmOptional
。