読者です 読者をやめる 読者になる 読者になる

Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #268】Realmのクエリ結果をResults型からRealmモデルクラスのデータ型にして返す

はじめに

Realmでクエリ結果はResults型で返ってきます。
これをRealmモデルクラスで返すにはどうしたらいいのかな、
と少し悩んだのでメモしておく。

これでRealmの習得レベルが少しアップした。

PersonというRealmモデルクラスを作ったとする。
すべてのPersonを取得し、Person型の配列で結果を返したいとする。

下記のようにmapを使って結果を返してあげればいい。

do{
    let realm = try Realm()
    return realm.objects(Person).map{$0} 
}
catch{
    // 処理なし
}
return []

extensionですべてのオブジェクトを返すプロパティを実装しておくと便利です。

extension Results{
    var allObjects:[Element]{
        return self.map{$0}
    }
}

上記のPerson型の例は下記のように書き換えられます。 Results型からすべてのオブジェクトを取り出しているというのがわかりやすくなった。

do{
    let realm = try Realm()
    return realm.objects(Person).allObjects
}
catch{
    // 処理なし
}
return []

参考情報

Swift

iOSアプリ開発未経験の人向け
iOSアプリ開発をはじめたとき最初に買った書籍 【アプリ作成未経験の人向け】
Storyboardを使って画面を作成していく。
手順にしたがって操作していくと、ボタンの作成やWebViewの作成などができる。
アプリって、こんな感じで作るんだというのを体験できる。

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】


・わかりやすくていい、と聞いた本
立ち読みした感じだと【アプリ作成未経験の人向け】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】


②を終えたくらいの知識の方向け
・アプリ開発独学中に2冊めに購入した書籍
プログラミング知識はなくても、若干理解するのに時間がかかる程度で、
読み進められるわかりやすさがある。

iPhoneアプリ開発塾

iPhoneアプリ開発塾


③中級者、上級者向け

詳解 Swift

詳解 Swift

詳解 Swift 改訂版

詳解 Swift 改訂版