2018-08-01から1ヶ月間の記事一覧

通知センターの通知を全部消す

通知の種類をアラートからバナーに変更するとすぐに消えてしまって見逃しがありそう…ってことで、だいたいの通知はアラートにして、自動的に消えないようにしています。 ですが、ちょっと離席したときに通知が溜まっていると、それを全部ポチポチ消すのは面…

cloneしていないリポジトリのmasterのハッシュを調べる

Git

git-ls-remote を使う $ git ls-remote https://github.com/tomorrowkey/adb-peco master 788d83985e44f747a785cb948ac75fe4a048862d refs/heads/master もちろんgithubじゃなくてもいいからandroidのframework/baseのmasterを取得する場合はこんな感じ $ gi…

配列の要素を一意にする

RubyでいうところのArray#uniqみたいなもの let array = [1, 1, 2, 4, 1, 3, 2] array.enumerated().compactMap({ index, item in array.index(of: item) == index ? item : nil }) それぞれの「index」と「arrayからindex(of:) で取得したindex」が一致した…

Closureの即時実行を使ったスコープの切り分け

Swiftのletはimmutableな変数宣言で、一度値を入れたらその後に変更することができない。 let hoge = "hoge" hoge = "fuga" // コンパイルエラー これは変数宣言のときに値を入れないといけない、という制限ではなく、その変数が使われるまでに値が入ってい…

forEachでインデックスを使いたい

配列をすべて舐めるような処理をする時はforEachを使うけど、この時indexを使うことができない let array = ["a", "b", "c", "d"] array.forEach { string in debugPrint(string) } そんなときはArray#enumerated() を使えばindexも使うことができる enumera…

UITextFieldで入力文字を制限する

UITextFieldDelegate を使う textField(_:shouldChangeCharactersIn:replacementString:) - UITextFieldDelegate | Apple Developer Documentation 例えばIntにパースできる値だけにしたければ、次のようなコードになる class ViewController: UIViewControl…