• Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
  • Swift2.1 & Xcode7.1対応の日本語版アップルチュートリアル!
  • Table View実装チュートリアルをXcode7.2.1で解説
  • Core Data シンプルチュートリアル
  • 私の本業、オフィシャルなブログ-> Life-LOG

CSVに書き出す準備をしていました。

www.raywenderlich.com

さて、次は「JournalViewController.swift」のコードを見ていきます...

...sigh

コードが長い...

......sigh

溜息しか出ません。今まで勉強してきたことを持ってすれば、コードを読み切ることができるのだろうか?

class JournalListViewController:
  UITableViewController, NSFetchedResultsControllerDelegate,
    JournalEntryDelegate {

このJournalViewControllerクラスは、UITableViewControllerを継承しています。ということは、テーブル表示のステップがかなり簡略化されているということです。必須メソッドを用意するぐらいでいいのでしょう。

そして、準拠しているプロトコールが2つ。「NSFetchedResultsControllerDelegate」と「JournalEntryDelegate」です。プロトコールとデリゲーションの関係性はもう大丈夫です。しかし、NSFetchedResultsControllerDelegateを使ったことがないので今回初めて勉強することになります。

そしてもう一つのプロトコール「JournalEntryDelegate」ですが、これはNSManagedObject継承クラスということで、NSManagedObjectクラスが持つプロトコールなんでしょう。すると、疑問が再び生まれました!

プロジェクト作成時に「Use Core Data」チェックマークに印を入れて作ったシンプルCore DataチュートリアルのViewControllerでは、このプロトコールの利用をしませんでした。Core Dataをカスタムに実装する場合はプロトコールに準拠させる必要があるようです*1。

本当に頭の悪い初心者ですね。クラス宣言のところを理解するためにこれだけ悩んでます(^_^;)

今日はここまで。

*1:もしくは、プロトコールも利用せず全てメソッドをカスタム実装するという選択肢もあるかもしれません。