

基本的な質問で申し訳ありません。  
SwiftでtableViewを使用する際にstoryboadでdatasourceとdelegateに紐付けをするのは何故ですか？色んなサイトでtableViewの使い方を見ていますが、紐付けをする場合としない場合があり違いがよく分かりません。どなたかご教授頂けると幸いです。よろしくお願い申し上げます。


CC BY-SA 4.0
2018-09-19T11:49:08.603
48556
2018-09-20T07:43:00.623
30174
question
swift tableview
SwiftのtableViewの紐付けについて


**datasourceについて**  
TableViewにデータを表示することができます。  
その表示するデータの数、セクションの数、セルの内容などを返却する役割を担当するオブジェクトを指定します。  
レコードの削除や挿入など、データに変更が加えられるときの通知もこちらが呼び出されます。  
レコードの削除や挿入は応答するメソッドが実装されているかどうかで、操作の可否が決まったります。  
TableViewを利用するには必須といえます。  
仮に何も指定しないと、ただ線が表示されるだけのスクロールビューになるはずです。  
詳細はこちらのApple公式をご覧ください。  
<https://developer.apple.com/documentation/uikit/uitableviewdatasource>

**delegateについて**  
セルの選択イベント等、TableView上でイベントが発生すると、delegateに指定されたオブジェクトが呼び出されます。  
イベントごとに呼び出されるメソッドは様々で、受け取れるように実装されていないイベントは発生しても通知されません。  
表示オンリーで何もイベントを受け取る必要がないTableViewには紐づける必要はありません。  
詳細はこちらのApple公式をご覧ください。  
<https://developer.apple.com/documentation/uikit/uitableviewdelegate>

**datasourceやdelegateの紐づけについて**  
datasourceやdelegateの紐づけ方法はStoryBoardで行う方法のほかに、コード上で記述することが可能です。  
StoryBoardで紐づけていない場合はコード上で紐づけているのかもしれません。  
以下のような感じで、TableViewのインスタンスのdatasourceプロパティやdelegateプロパティにオブジェクトを登録しているはずです。

[code]

    self.tblView.datasource = self
    self.tblView.delegate = self
    
[/code]

以上です。  
間違い等ありましたらご指摘ください。


CC BY-SA 4.0
2018-09-20T07:43:00.623
48587
2018-09-20T07:43:00.623
17014
48556
answer