プロジェクション
@propertyWrapper
public struct Projected<T, Value> : AnyProjected where T : RLMObjectBase
@Projected
は、Realm によって管理される必要があるProjection
プロトコルのプロパティを宣言するために使用されます。
使用例:
public class Person: Object {
@Persisted var firstName = ""
@Persisted var lastName = ""
@Persisted var address: Address?
@Persisted var friends: List<Person>
@Persisted var reviews: List<String>
}
class PersonProjection: Projection<Person> {
@Projected(\Person.firstName) var firstName
@Projected(\Person.lastName.localizedUppercase) var lastNameCaps
@Projected(\Person.address.city) var homeCity
@Projected(\Person.friends.projectTo.firstName) var firstFriendsName: ProjectedCollection<String>
}
let people: Results<PersonProjection> = realm.objects(PersonProjection.self)
-
型のデフォルト値に遅延初期化されるプロパティを宣言します。
宣言
Swift
public init(_ projectedKeyPath: KeyPath<T, Value>)