Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 352 - カスタムTableViewでSectionをつくる パート2

Swiftで遊ぼう!の古い記事-> Life-LOG OtherSide
質問 : Swiftで遊ぼう! - 252 - FaceViewプロジェクト始動 - Swiftで遊ぼう! on Hatena

テーブルに表示させる項目数が多いのでplistからロードするのが望ましいでしょう。

plistからデータをロードする方法は以前にも説明してます

しかし、今回説明する方法は微妙に違うんです。

色々なやり方があることを覚えておきましょう。

といってもなかなか覚えられないのがオヤジの頭です(T_T)

NSBundleオブジェクトを利用して外部フィルを読み込みます。しかし2つのメソッドがあります。

  1. URLForResource(name: String, withExtension: String?)
  2. pathForResouce(name: String, ofType: String?)

最初のメソッドは下記で説明しています。yataiblue.hatenablog.com

しかし、今回は下のメソッドを使って読み込みます。Sectionsプロジェクトで読み込むファイルは[String: {String]]型の「sortednames.plist」です。

読み込む場所は、当然viewDidLoad()メソッド内なので、次のようにコードします。

override func viewDidLoad() {
 super.viewDidLoad()
        
 tableView.registerClass(UITableViewCell.self,
     forCellReuseIdentifier: sectionsTableIdentifier)
        
 let bundle = NSBundle.mainBundle()
 let path = bundle.pathForResource("sortednames", ofType: "plist")
 let namesDict = NSDictionary(contentsOfFile: path!)
 names = namesDict as! [String: [String]]
 keys = sorted(namesDict!.allKeys as! [String])
}

URLResource()メソッドと異なるところは、NSDictionaryの引数にも及びます。

NSDictionary(contentsOfURL: NSURL)をNSDictionary(contentsOfFile: String)に変更します。

今日はここまで。