Swiftで2つの配列を同時にIterate
swiftで2つの配列を同時にfor文で処理したい時は以下のようにする。
let array1 = [1,2,3,4] let array2 = [5,6,7,8] for (a1, a2) in Zip2Sequence(array1,array2) { print(a1) print(a2) }
Rxの関数を図で見る
ReactiveProgrammingを導入するためにはmap,filter等の様々な関数を理解する必要があるのでコストが高いです。
それぞれの関数がどういった動作をするのかはまずは公式をみるべしです。
こちらのサイトでは公式の図にあるObservableを自分で動かす事ができます。
少し理解しやすくなっていると思います。なによりおもしろい。rxmarbles.com
swift2.0でStringの先頭、最後を削除する
swift2.0ではdropFirst,dropLastがなくなったのでタイトルの動作をどのようにすればよいのか調べた。
What is the most succinct way to remove the first character from a string in Swift? - Stack Overflow
こちらのstackoverflowの回答でいくつか良い方法が挙がっている。こういったユーティリティ的な動作はふたつ目の回答のようにextensionにしておくのが良い。
swift2.0からadvance関数はBidirectionalIndexTypeのadvancedByに変わっているのでそこを直すと以下の様になる。
extension String { func chopPrefix(count: Int = 1) -> String { return self.substringFromIndex(self.startIndex.advancedBy(count)) } func chopSuffix(count: Int = 1) -> String { return self.substringToIndex(self.endIndex.advancedBy(-count)) } }
JSONからモデルを自動生成する
JSONからその要素に対応したモデルを作る際に手打ちで作成するのは非常に面倒です。
こちらのJSONExportというツールはこの作業を自動でやってくれるので非常に便利です。
Ahmed-Ali/JSONExport · GitHub
こんな感じで左側にJSONを入力すると右側に指定した形式でモデルが出力されます。
対応している形式は以下のとおりです(Version 0.0.9)。
最近きているRealmだけでなくSwiftyJSONや
SwiftyJSON/SwiftyJSON · GitHub
ObjectMapperといったライブラリにも対応しています。
Hearst-DD/ObjectMapper · GitHub
個人的にはObjectMapperにお世話になっているので非常にありがたいです。