【swift初心者が語る】DataSourceとDelegateとは?
こんにちは。青木です。 1月からエンジニアとして働き始めて早2ヶ月が経ちました(本当に早い・・・)
さて、今私は仕事としてswiftでiphoneアプリを開発しています。本当に右も左もわからず苦戦中です・・・・ そこで今回は私が勉強しているswiftのDataSourceと Delegateについてお話しできればと思います。
DataSourceとDelegateとは
DataSource とは一言で言うと「テーブルに表示する内容を提供するもの」です。 対して、Delegateは「テーブルの表示や操作を処理するためのもの」です。 DataSourceとDelegateを扱うには、UITableViewDataSourceとUITableViewDelegateというプロトコルを追加しなければなりません。 このプロトコルを追加することで、テーブル操作やイベント処理、セクションやセルの値を設定するための様々なメソッドを使用できるようになります
【注意点】 DataSourceとDelegateを使用する際に気をつけなければいけないのは必ず使用しなければいけないメソッドがあることです。
下の画像はDataSourceプロトコルの使用可能なメソッド一覧を表したものです。黄色で囲まれたメソッドがありますね。こちらは必ず使用しなければいけないメソッドです。 対して赤く囲まれた「optional」で始めるメソッドがありますね。こちらは必ず使用しなくてもいいメソッドです。 このようにDataSource/Delegataプロトコルを使用する際には、必ず実装しなければいけないメソッドがあることに注意してください。
ちなみに使用必須のメソッドを指定しないと以下の画像のようなエラーが出ます。
ちなみにこんな感じに書くと。。。
こんな感じで表示されます。
※詰まるポイント
なぜかcollection Viewがうまく配置されない!!!一個しか出ない!!なんて時があります。 そんな時はcollectionviewがDataSource/Delegate接続されているか見てみましょう。
手順① 下記画像の赤く囲われている部分をcontrolキーを押しながら接続先へドラッグ
手順② 下記画像のようにDataSource/Delegateに接続されているかどうか確認。
まとめ
簡単に殴り書きでしたが、ざっくり書いてみました。 DataSource とは一言で言うと「テーブルに表示する内容を提供するもの」 Delegateは「テーブルの表示や操作を処理するためのもの」です。
今後これらを使用して実装してみる様子を詳しくアップできたらなーと思います。