Swiftで遊ぼう! on Hatena

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

Swiftで遊ぼう! - 467 - Navigation Controllers and Table Views 7

Swiftで遊ぼう!の古い記事-> Life-LOG OtherSide

Beginning iPhone Development with Swift: Exploring the iOS SDK

Beginning iPhone Development with Swift: Exploring the iOS SDK

RootViewControllerのコーディング続きです。

import UIKit

class RootViewController: UITableViewController {

 private var familyNames: [String]!
 private var cellPointSize: CGFloat!
 private var favoritesList: FavoritesList!
 private let familyCell = "FamilyName"
 private let favoritesCell = "Favorites"

ここまででプロパティを設定しています。次はイニシャライザ... いえ違います。イニシャライザ無しでインスタンス化するためにviewDidLoad()メソッドを使うんです。この理由は? 分かりますか? 私のブログをしっかり読んでいると理由を説明しています。分からない人は頑張って勉強してください。

さて、読者を煽るのはこれくらいにして、viewDIdLoad()メソッドを仕上げましょう。プロパティ宣言でメモリーだけ割り当てたのは? そうですね。familyNames、cellPointSizeそしてfavoritesListです。これを実体化するのがviewDidLoad()メソッドです。

override func viewDidLoad() {
 super.viewDidLoad()

 familyNames = UIFont.familyNames().sort()
        
 let preferredTableViewFont = UIFont.preferredFontForTextStyle(UIFontTextStyleHeadline)
        
 cellPointSize = preferredTableViewFont.pointSize
 favoritesList = FavoritesList.sharedFavoriteList
}

これで全てのプロパティは実体化しています。UIFontクラスのメソッドを使っているのですが、今のところこういうものです。色々理解しないといけないんですが、今日は説明しません。重要なのはプロパティの実体化です。実体が無いとランタイムエラーに陥ります。

そしてシングルトンクラスの唯一のインスタンス(FavoritesList.sharedFavoriteList)をプロパティ化します。

今日はここまで。