swift
これは Aizu Advent Calendar 2018 の 7日目の記事です。 6 日目は id:acomagu さんで、8 日目は id:NoahOrberg さんです。 adventar.org はじめに Interface Builder (以下「IB」という。) で UIViewController のレイアウトを組むには、 Storyboard と Xib…
HLS形式の動画から字幕情報を取得する機会があり、その実装を試みたがハマった。調べた限りこれに関する記事が無かったため、今回は記事として残す。 字幕情報を取得するには? AVPlayerItemLegibleOutput を使用する。 AVPlayerItemLegibleOutput は、デリ…
最近RxSwiftの勉強をしていて思いついたバインドをやってみる。 UIPickerViewからデータを選択し、そのデータをUITextFieldのテキストにセットするものである。 UIPickerViewをUITextFieldの入力として使用する まずUIPickerViewをUITextFieldの入力のViewと…
CharacterSetとは 言葉通り文字の集合である。Appleのドキュメントにも書いてあるが、文字列の中から特定の文字を検索したいときなどに使う構造体。自分も以前そのような用途で使ったことがある。 CharacterSet - Foundation | Apple Developer Documentatio…
NSCodingについて Swiftにはクラスをシリアライズ, デシリアライズするためにNSCodingが用意されている。 そのクラスをシリアライズ, デシリアライズするには、NSCodingに準拠させ、2つのメソッド(func encode(with aCoder: NSCoder)とinit?(coder aDecoder:…
省略について Swiftには型名.varibaleHogeと書くところを型がわかっている場合は.varibaleHogeと書ける。 例えば以下のような感じ。 // textAlignmentはNSTextAlignment(enum)で、centerが定義されている UILabel().textAlignment = .center // centerはCGPo…
文字入力の検出 まずUITextFieldにおいて文字入力を検出するには主に2つの方法がある。 一つはUITextFieldDelegateを準拠し、textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Boolを…
Swift Package Managerについて Swiftが標準で提供しているライブラリ管理ツール。SPMとも略される。 フレームワークを配布するには、Package.swiftにフレームワークの依存関係などを書いてSources/にソースコードを置く。さらにそのディレクトリをgithubに…
protocolについて まずswiftにはprotocolが用意されている。例えばUIKit系のクラスではよくdelegateやdataSourceが用意されていて、他のクラスに処理を委譲する設計になっている。delegateやdataSourceを継承したクラスはその処理を書かなければならない。 c…
エラー概要 先日iOSアプリの開発中にCIColor型で黒色の値を取得しようとして次のようなコードを書いた。 let blackColor: CIColor = UIColor.black.ciColor ビルドしてもエラーがないので、このままRun出来ると思ったらこのエラーでアプリが落ちた。 reason:…