SWIFT Realmの起動


既存の(少なくとも見たことがある)Realmに関する韓国語の文章はすべて旧式バージョンです.
最新バージョンは@objcを使用し、最新バージョンは@Persistedを使用します.
このように文法も最新バージョンと若干互換性がないところがあるので、本書を見て少し整理しました.

インストール


|更新
  • Cocoapodsリポジトリ
  • 端末pod repo updateココア豆の最新のRealmバージョンへのアクセスを許可!
  • pod init
  • 生成されたPodfileにuse_frameworks!がない場合はpod 'RealmSwift', '~>10'を追加して保存
  • Podfileの様子は以下の通りです.
    platform :ios, '12.0'
    
    target 'MyRealmProject' do
      # Comment the next line if you don't want to use dynamic frameworks
      use_frameworks!
    
      # Pods for MyRealmProject
      pod 'RealmSwift', '~>10'
    
    end
  • pod install後.xcworkspaceファイルの使用を続行します.
  • CRUD


    importはimport RealmSwiftで行います.
    **Realmswiftをロードできない場合は、https://teqoo.tistory.com/248を参照してください.
    オブジェクトモデルは次のように記述されます.
    要旨
    Product > Schemes > New Scheme...
    ヒンジswiftを選択して確認
    Build the RealmSwift target (cmd + b)
    //
    //  Person.swift
    //  realm_intro
    //
    //  Created by YOONJONG on 2021/08/11.
    //
    
    import Foundation
    import RealmSwift
    
    class Person: Object{
        @Persisted(primaryKey: true) var _id : ObjectId
        @Persisted var name: String = ""
        @Persisted var age: Int?
        convenience init(name: String) {
            self.init()
            self.name = name
        }
    }
    
    idはデフォルトキーに設定され、name、ageはそれぞれstringと整数型として宣言されます.

    Create

    
    func createPerson(){
            let realm = try! Realm()
            let person1 = Person()
            person1.name = "철수"
            person1.age = 10
            let person2 = Person()
            person2.name = "영희"
            person2.age = 11
    	print(Realm.Configuration.defaultConfiguration.fileURL!)
            try! realm.write{
                realm.add(person1)
                realm.add(person2)
            }
    }
    
    let realm = try! Realm()は、Realmを開く行です.
    では、Realm Studioで入力したデータを確認します.
    https://docs.mongodb.com/realm/studio/からアプリケーションをダウンロードし、xcodeにprint(Realm.Configuration.defaultConfiguration.fileURL!)を入力します.
    Realmデータが格納されている場所を特定できるようになりました.

    Read


    次に、格納されているデータを読み出しましょう.
    func readPerson(){
            print(Realm.Configuration.defaultConfiguration.fileURL!)
            
            let realm = try! Realm()
            let savedPerson = realm.objects(Person.self)
            let filter1 = savedPerson.filter("name == '철수'")
            print("-> Person : ", savedPerson)
            print("filter1 : ", filter1)
        }
    let savedPerson = realm.objects(Person.self)realmのcollectionを読み込むことができます.
    必要なデータを取得できるのはfilterのみです.

    Update & Delete


    更新と削除
    	// UPDATE
    let taskToUpdate = savedPerson[0]
    try! realm.write {
       taskToUpdate.age = 17
    }
    	// DELETE
    let taskToDelete = savedPerson[0]
    try! realm.write{
       realm.delete(taskToDelete)
    }
    かもしれません.

    シナリオを変更する必要がある場合は、


    ちなみに、年報を削除したり、住所報を追加したりするなど、モードを変更する必要がある場合は、schemaVersionを追加する必要があります.これは.
    func createPerson(){
            let config = Realm.Configuration(schemaVersion: 2)
            Realm.Configuration.defaultConfiguration = config
            let realm = try! Realm()
            let person1 = Person()
            person1.name = "철수"
            ...
        }
    に示すように、タッチ構成でOKです.