Swiftで遊ぼう! on Hatena

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

Swiftで遊ぼう! - 463 - Navigation Controllers and Table Views 5

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

Beginning iPhone Development with Swift: Exploring the iOS SDK

Beginning iPhone Development with Swift: Exploring the iOS SDK

お気に入りフォントを管理するクラスFavoritesListをコーディングしました。しかし、よくみるとイニシャライザに無理矢理guardを入れましたが、こういうケースは「??」を使った方がすっきりしました。

FavoritesListクラスの完成形は次の通りです。

import Foundation
import UIKit

class FavoritesList {

 static let sharedFavoriteList: FavoritesList = FavoritesList()

 private(set) var favorites: [String] 
 
 private init() {
  let defaults = NSUserDefaults.standardUserDefaults()
  let storedFavorites = defaults.objectForKey("Favorites") as? [String]
  favorites = storedFavorites ?? []
 }

 func addFavorite(fontName: String) {
  guard favorites.contains(fontName) else {
   favorites.append(fontName)
   saveFavorites()
   return
  }
 }
    
 func removeFavorite(fontName: String) {
  if let index = favorites.indexOf(fontName) {
   favorites.removeAtIndex(index)
   saveFavorites()
  }
 }
    
 private func saveFavorites() {
  let defaults = NSUserDefaults.standardUserDefaults()
  defaults.setObject(favorites, forKey: "favorites")
  defaults.synchronize()
 }
}

イニシャライザがすっきりしました。簡単なコーディングでも本当に色々バリエーションがありますね。こういうことを考えながらプログラミングするって楽しいですね。

今日はこれだけ(^^;)