4
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Swift3でRealmSwift(サンプルあり)

Last updated at Posted at 2017-01-17

###アップデートしました
Xcode 10.0
Swift 4.2
Realm 3.12.0

#概要
目新しくもないんですが、RealmSwiftを使って、
なんちゃって家計簿的なサンプルを作ってみました。

概要しか記載してないので、ソース見たい方はどうぞ。
https://github.com/koji-nishida/RealmSwiftSample/tree/master/RealmSample

#完成図
スクリーンショット 2017-01-17 19.24.28.png

#1. 導入

  1. プロジェクト作成
    まずはプロジェクトを作成。
    今回は'RealmSample'としました。
  2. インストール
    プロジェクト直下にて以下コマンド実行
    $ pod init
    'Podfile'というファイルが作成されるので、以下追記
    pod 'RealmSwift'
    インストール
    $ pod install

スクリーンショット 2017-01-17 17.05.30.png

#2. コード作成
###アプリ概要
・品名と金額を入力して「登録」ボタンを押すと、保存される
・登録日時が新しいものから表示する
ただそれだけっ...

###手順
・画面作る(storyboard)
こんな感じです
スクリーンショット 2017-01-17 19.43.03.png

・Realmオブジェクト作成
サポートしている型や、Optional/非Optionalについては、公式?を参照下さい。
https://realm.io/jp/docs/swift/latest/#section-11

Item.swift

import RealmSwift

class Item: Object{
    // 品名
    @objc dynamic var name: String? = nil
    // 金額
    @objc dynamic var price = 0
    // 登録日時
    @objc dynamic var created = Date()
}

・保存

ViewController.swift
        // 入力値をセット
        let item:Item = Item()
        item.name = self.textName.text
        if ((self.textPrice.text?.characters.count)! > 0) {
            item.price = Int(self.textPrice.text!)!
        }
        
        // 保存
        let realm = try! Realm()
        try! realm.write {
            realm.add(item)
        }

・一覧取得

ViewController.swift
override func viewDidLoad() {
        super.viewDidLoad()
        
        // デフォルトRealmを取得
        let realm = try! Realm()
        // 一覧を取得:金額を条件に、登録日時が新しい順でソート
        self.itemList = realm.objects(Item.self).filter("price > 0").sorted(byProperty: "created", ascending: false)
    }

と、だいぶ端折りましたが、これだけといえばこれだけです。
コードの詳細はgithub見ていただければと。

#3. 最後に
導入が簡単で、比較的直感的に使えて便利、といったところでしょうか。
色々な型に対応していて、ソートもできて、ページングの考慮もする必要がないらしいので。
Auto Incrementがなくて不便という記事は見かけましたが。
じっくり使ってみたわけではないので、かゆいところに手が届かない的なことも当然あるんでしょうかね?

4
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?