例えば、次のようにIndexPathに合わせて取り出すために以下ののような構造を作った場合はなんと名前をつけるのがいいでしょうか?
この場合でいうなら、表示データの配列の配列なのでdataStores
とかdataStoreArray
だったり自分なら付けちゃいますね
または、二重配列を使うことがイケてないでしょうか。
アドバイスをお願い致します。
これは時と場合によるのですが、どういうデータ構造の物を表示したいかによるので一概に多次元配列がイケてないとは言えないです
ただ私は今まで作ってて必要になったシチュエーションが少ないので、分け方としてはまだ手段があると思いました
objects = [[1,2,3,4], [1,2,3,4], [1,2,3,4]]
この例をまずは分解していきます、一旦ですが二重配列から取り出した状態に直します
swift
1let items1 = [1, 2, 3, 4]
2let items2 = [1, 2, 3, 4]
3let items3 = [1, 2, 3, 4]
このようになりました、各項目のグループとなる配列の変数名を今回はitems1〜3としてますが、
実際に画面を作る際にはもっと意味がある項目の集まりだと推測します
それでは今回はitemsを1つの日付として、その日にあった出来事を格納している、ということにしましょう
対象日付は2015年9月23日〜25日とすると、以下のようにマッピングできます
swift
1let itemsFor20150923 = [1, 2, 3, 4]
2let itemsFor20150924 = [1, 2, 3, 4]
3let itemsFor20150925 = [1, 2, 3, 4]
意味を結びつけると上記のようになりました
ただこうしてしまうと毎回日付が増えるたびにitemsFor2015XXXXというような
itemsが大量に量産されてしまいますし、動的に対応ができないのでdictionaryにしてしまいます
swift
1let dataSource: [String: [Int]] = {
2 "20150923": [1, 2, 3, 4],
3 "20150924": [1, 2, 3, 4],
4 "20150925": [1, 2, 3, 4]
5}
dataSource
という変数名はよくAppleのサンプルや、他の人のライブラリの実装の中で出てくるので割と一般的だと思ってます。
このようにデータ構造を決めることでかなり具体的にコード側に意味を持たせることもできますし、UITableView側でSectionとRowの組み合わせは、[日付の文字列]と[日付に対応する項目]なんだなってことが一目で分かりますよね
というように実装する際のデータの意味がどうなってるかで分け方としては変わってくるので今紹介したパターンも一概に良いとは言えないので適材適所で使って頂ければと思います、以上参考になれば幸いです
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/27 14:24