読者です 読者をやめる 読者になる 読者になる

Kの技ログ

モバイルソフトウェア開発者の技術記録

Swift

Associated Value を 条件式で処理する

enum で Associated Value を定義した際に、switch 文でしか条件式を組めないと思っていたのですが、if-case文やfor-case文なるものが swift2 から追加されていました。 下記のような感じです。 enum GameTitle { case dragonQuest(Int) case persona(Int) }…

UITableView の reloadSections アニメーションの不具合

ヘッダーをタップすることでセルを開閉できる、アコーディオンのようなテーブルビューを作ったときの話です。ヘッダーだけ残した状態で、セルとフッターを隠したり表示したりを切り替えたくて、 reloadSections:withRowAnimation: で開閉を実装しました。と…

iOS8 を含むSwift3対応時の不具合対応

Swift 2.1 から 3 へ移行する際に、大きな不具合が1つあったので、その対応を考えてみました。 ※ ただし、多くの端末・バージョンで検証したものではありません。 問題 UITableViewDelegate の table​View(_:​height​For​Row​At:​) に渡される indexPath の…

mapとforEachとfor

mapとforEach 返り値を必要とするならmapメソッド、要らないならforEachメソッドを使います。書き方は同じ。 以下forEachの例(アルファベットの一覧を作成)。 // a to Z var chars : [Character] = [] ["a", "A"].forEach { let scalar = $0.unicodeScalar…