Help us understand the problem. What is going on with this article?

Realm「基礎」の「基礎以外」

More than 1 year has passed since last update.

Realmでよく使うけどあんまり書かない集?

全くコアではないが必ず使うわけでもないくらいのものをメモしていこうと。

ソート

realm = try! Realm()
var questions = realm.objects(Question.self)
//byKeyPathに並び替えたいものを入れる
var sortedQuestions = questions.sorted(byKeyPath: "registeredDay")
//逆順
var sortedQuestions = questions.sorted(byKeyPath: "registeredDay", ascending: false)

昇順(ascending)、降順のイメージ

昇順(asc) 1 2 3
降順(desc) 3 2 1

マイグレーション

AppDelegate.swift
// AppDelegate.swiftのapplication(application:didFinishLaunchingWithOptions:)の中に書く

let config = Realm.Configuration(
    // 新しいデータベース構造のバージョンを宣言。
    //バージョンは以前使っていたバージョンよりも大きいものにする(まだマイグレーションをしたことがないときのバージョンは0)
    schemaVersion: 1,
    // 新しいバージョンに書き換えらる時に自動的に呼ばれるブロックを引数に渡す
    migrationBlock: { migration, oldSchemaVersion in
        // まだマイグレーションをしたことがないのでoldSchemaVersion == 0
        if (oldSchemaVersion < 1) {
            //ここにマイグレーションする時のコードを書く
            migration.enumerateObjects(ofType: Person.className()) { oldObject, newObject in
                // 昔のオブジェクトのカラムを用いて新しいオブジェクトのカラムを生成
                // この場合firstNameとoldNameから一つのカラムにまとめている
                let firstName = oldObject!["firstName"] as! String
                let lastName = oldObject!["lastName"] as! String
                newObject!["fullName"] = "\(firstName) \(lastName)"
            }
        }
    })

// デフォルトで呼ばれるRealmに今回設定したバージョンのものを設定
Realm.Configuration.defaultConfiguration = config

// これでマイグレーションは完成したのでもうRealm()を呼べる
let realm = try! Realm()
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away