[swift/Realm]realmデータモデル@持続化の意味,propertyパッケージ


Intro


Realmを使用してiOSアプリケーションにユーザーデータを格納
まずRealmデータモデルを作成します.
class UserChatting: Object {
    
    @Persisted var to: String       //채팅을 받는 사람의 uid
    @Persisted var from: String     //채팅을 보내는 사람의 uid
    @Persisted var chat: String     //보낸 채팅 내용
    @Persisted var createdAt: String//채팅을 보낸 시간
    
    //PK
    @Persisted(primaryKey: true) var _id: ObjectId
    
    convenience init(to: String, from: String, chat: String, createdAt: String) {
        self.init()
        
        self.to = to
        self.from = from
        self.chat = chat
        self.createdAt = createdAt
    }
    
}
このようにして、どのようなフォーマットでどのデータを格納するかに関する情報を作成する必要があります.
このとき,@Persistedの使用が何を意味するかを理解してみよう.
(旧バージョンでは@objc、最新バージョン10.24では@Persistedを使用)

Property Wrapper


@はswiftのpropertyパッケージを表します.
swift 5.1から追加された機能、@Published、@Binding、@State、@availableなどが属性パッケージです.
職業資格を発表するとともに、どのような行動を取るかを決めると言える.作成したpropertyパッケージを使用するか、propertyパッケージを直接作成して必要な論理を実行することができるため、重複するコードを減らすことができます.(再利用可能)
@Persistedを定義したコードをxcodeで検索...

このように定義されていることがわかります
@Persistedはrealmで定義されたpropertyパッケージです!
では、その役割を理解してみましょう.

Persistance



続けた辞書は「続ける」「続ける」という意味です.
アプリケーションでRealmを使用する理由を考えてみましょう
なぜRealmを使うのですか?
→アプリケーションを閉じても、メンテナンスが必要なデータ(ex.ユーザ情報)
つまり、永続化が必要なデータのために使用されます.
Realmでは、@Persistedという名前のプロパティパッケージを使用して、永続性のあるデータを管理できます.
どのように持続的に管理するかはpropertyパッケージが自分で処理すると見なすことができる.
Realmデータモデルを定義する場合は@Persistedを宣言するだけです.
+)
Realmに加えて、Persistanceを有するデータを処理する他の方法としては、UserDefault、Property List、SQLite、CoreDataが挙げられる.

リファレンス


Realmswift 10.24.0の正式なドキュメント
https://www.mongodb.com/docs/realm-sdks/swift/latest/Structs/Persisted.html