Skip to content

Couchbase LiteのCBLUITableSourceを動かしてみた

2013年11月26日

新たに追加されたクラス、CBLUITableSourceを動かしてみた。
どういうものかというと、UITableViewのDataSourceとCouchbaseLiteのLiveQueryを組み合わせたもの。
CouchbaseLiteにドキュメントを追加すれば、すぐにそれをTableViewが検知して、UITableViewにそのデータが反映される。

Couchbaseが配布している、ToDoLiteにも使われているやつです。

XIBでの利用を前提に作っているらしいのでそれにしたがって設定してみた。
各種環境はできている前提です。

動かしてみよう

まずはプロパティ宣言。
IBOutletを忘れずに。

@property (nonatomic) IBOutlet CBLUITableSource* dataSource;

そしてXIBを開き、ViewにUITableViewを配置。
そしてObjectsにNSObjectを配置し、ClassをCBLUITableSourceに変更します。

そして、さっき配置したUITableViewを以下のように接続

★TableView:
dataSource:さっき配置したCBLUITableSource
delegate:FilesOwner
tableView:CBLUITableSource内にあるtableView

★FilesOwner

dataSource:さっき配置したCBLUITableSource

そして最後に、ViewDidLoadなどで

    self.dataSource.labelProperty = @"text";    // Cellに表示したいドキュメントのプロパティ名
    
    AppDelegate *ap = ApplicationDelegate;
    
    if (_dataSource){
        _dataSource.query = [[ap.database queryAllDocuments] asLiveQuery]; //ここがライブクエリ設定部分
        _dataSource.query.descending = NO;
    }

としてあげれば準備完了です。
あとはドキュメントを追加したりすれば勝手にUITableViewの更新などをやってくれます。お手軽!

UITableViewの見た目や設定を変更したければ、Delegateメソッド用意しているからオーバーライドしていじってみてね、と公式にはあります。

手軽なだけ?

で、手軽にここまで出来るのはいいんですが、実際カスタムするとなると今まで慣れ親しんできたやり方でやりたいなーと思った。
この実装がこの手法でしかできないかって言うとそういうわけでもないですし。

普通に、UITableView配置して、LiveQuery作成して、その通知拾って、更新かける、というのを自分で書いちゃえばいいし、そっちのが今ロールしやすくない?って思っちゃう。

もしかするとそのデリゲートメソッドになにか便利なものがあるかもしれないからなんとも言えないですけどね。
ともかく今回は触ってみたってことで。

広告
4件のコメント
  1. 高浜 桂子 permalink

    こんにちは。以前CouchbaseのMeetUpでお世話になりました高浜と申します。
    12月12日(木)にMeetUp開催を企画しているのですが、Couchbase Liteについてお話し頂くことは可能でしょうか?急なお願いで恐縮ですが、ご検討頂けますと幸いです。

    • こんにちは。どもどもssdkfkです。
      ミートアップの話は河村さんからお聞きしてました。出席予定ではありますが〜、ちょっと河村さんに話してみますね。ありがとうございます。

      • 高浜桂子 permalink

        ご返信ありがとうございます!
        河村さんからCouchbase Liteについて少しお話し頂けると伺いました。お忙しい中、ご参加頂きありがとうございます。講師の方には優先的にチケットを渡したいと思っています。
        当日よろしくお願い致します。

      • いえいえこちらこそありがとうございます。
        大したお話はできませんがどうぞよろしくお願いします!

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。