Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。1])の意味がよく分かりません。このコードでsendボタンを押すとメッサージが表示されるようになるのは分かるのですが、[messageList.count-1]とは何を意味するのでしょうか。票0こちら、MessageKitがUICollectionViewをどのように表示に利用しているかまでわかればもう少しわかりやすく書けるのかもしれませんが、そこら辺まではわからないので、取り敢えず文法的な説明だけ。長くなってしまいましたので、ざっと斜め読みして、「そんなことはもうわかってるよ!」って部分はうまく読み飛ばして下さい。該当のメソッドですが、MessageKitに特有のものではなくUICollectionViewのメソッドです。(正確に言うとmessagesCollectionViewの型はMessagesCollectionViewで、MessagesCollectionViewがUICollectionViewから継承したメソッド、ってことになります。)insertSections(_:)で、このメソッドがどう言う場面で使われてどう言う意味を持つのかは、英語がさくさく読める方でも、わかるようには書かれていません...。この辺はあなたがどれだけUICollectionView(やUITableView)を使ったことがあるかで理解しやすさが変わってくるのですが、それらのdataSourceとして使われているデータモデルが更新された場合、そのことをUICollectionViewに正しく伝えてやらないと、ユーザの見ている表示が正しく更新されません。データモデル全体を更新した場合には、reloadData()なんてものを呼ぶのですが、これだと画面全体が更新されてしまうので、重い上に、「1項目追加」なんて場合でも画面全体が一挙に更新されてしまい、どこに項目が追加されたのかがわかるようには表示してくれません。そこで、UICollectionViewには「項目の追加」「項目の移動」「項目の削除」「セクションの追加」「セクションの移動」「セクションの削除」と行ったありがちなデータモデルの更新をUICollectionViewに知らせるメソッドが用意されています。insertSections(_:)メソッドはそのうちの「セクションの追加」を知らせる(⇨知らせられたUICollectionViewはセクション追加のアニメーションを使って新しいセクションを表示してくれる)と言うメソッドです。同じサンプルコードの中に次のようなメソッドが定義されているのがわかるでしょうか。MessagesDataSourceの中。messageList.count}セクション数を返すべきメソッドで、messageListの要素数をそのまま返しています。ConversationViewControllerでは、messageListの各要素がそれぞれ1セクションに対応していることがわかります。ここまで理解できれば、あなたがご質問になった行は前の行と強い結びつきがあることがわかります。1])(2箇所ありますが、もう一方も考え方は同じ。)1行目のmessageList.append(...)で「(セクションを表す)データモデルの最後に1要素追加」しているので、2行目で「セクションが最後に追加されたよ」と言うのをmessagesCollectionViewに伝えているわけです。1と言うのは配列の最後の要素のインデックスを表しているのはお分かりでしょう。messageListはセクションを表しているのですから、その最後の要素のインデックスは、つまり新しく追加されたセクションのセクション番号でもあります。insertSections(_:)は複数のセクションが一括で追加された時にも使えるので、引数をIndexSetと言うインデックス専門の集合型で受け取るのですが、上記の配列リテラルは、このIndexSet型に変換されて、insertSections(_:)に渡されます。「最後にセクションを1個追加した(ので画面も更新してほしい)」ことをmessagesCollectionViewに伝えています。messagesCollectionViewでは1セクションが1メッセージですから、画面に新しいメッセージが追加される形で画面が更新されることになります。個の銅バッジ丁寧なご説明ありがとうございました。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。