タグ

ブックマーク / www.toyship.org (6)

  • SwiftにおけるAssertとFatalError - Toyship.org

    これはSwift Advent Calendar 2017の10日目の記事です。 assertはSwiftでコードを書く時の基的なデバッグ機能です。 いろいろな会社のiOSプロジェクトを拝見していますが、assertを有効につかっているプロジェクトは意外と少ない印象なんですよね。 書く癖をつけておくと、いざというときに楽ができますよ。 assert、fatalErrorとは assertとfatalErrorは、実行時に想定外のことが生じた場合にクラッシュしてアプリを停止するデバッグ用の機能です。 与えられた値(下記のコードのvalue)がtrueの時にはなにも発生せず、falseの時にはクラッシュします。 また、表示したいメッセージを付け加えることもできます。 assert(value) assert(value, "表示したいエラー文言") fatalError(false) fat

    sagaraya
    sagaraya 2017/12/16
  • ISO8601とUnix Timestamp - Toyship.org

    これはiOS Advent Calendar 2016の12/2の記事です。 アドベントカレンダーはDate/Calendarネタを描こうと思っているので、今年はいろいろな現場で必ず目にする日付フォーマットのバグについて。 ある程度iOSをやっている方には当たり前の話なんですが、なぜかこのバグはいろんなところで見かけるんですよね……。 最近iOSをはじめた人は是非覚えておいてくださいね。 日時情報フォーマット みなさん、APIに日付を含まれる場合、どんなフォーマットにしているでしょうか。 一般的に使われるのは、ISO8601かUnix timestamp。 ISO8601はWebの世界で標準的に使われている日時を表す文字列、Unix timestampは1970/1/1からの秒数を表す数値です。 ISO8601は文字列なので、ぱっと見て日時を識別できるのが利点であり、Unix timest

    ISO8601とUnix Timestamp - Toyship.org
    sagaraya
    sagaraya 2016/12/19
  • if let の変数名 - Toyship.org

    SwiftでOptional値をunwrapするときに一番使う if let 構文。 そのときの変数名の扱いについてみなさんはどうしているでしょうか。 if let Swiftで導入されたOptional、このOptional変数をOptionalではない変数にする unwrap 処理として一般的なのが if let 構文です。 下記のコードでは、aはInt?型なのでIntまたはnilが入っているので、実際にこのなかの値を判定する時には、if let構文でunwrapする必要があります。 let a : Int? // (change a value) if let b = a { print("a : \(a)") print("b : \(b)") } 上記のようにif letすると、 a はInt?型、bはInt型となり、aをunwrapしたものがbとなりますね。 さて、この場合、み

    if let の変数名 - Toyship.org
    sagaraya
    sagaraya 2015/12/12
    なるほど〜
  • iOS9のコンテンツブロッカー - Toyship.org

    WWDCで新しいiOS9の機能がいろいろと発表されましたが、Safariでの表示項目を制限することが 「コンテンツブロッカー」機能については、Web業界の方はちょっと気になるのではないでしょうか。 さっそく調べてみました。 (なお、この記事はAppleが一般に公開している情報を元に書いています) コンテンツブロッカー コンテンツブロッカーとはiOSやMacでSafariに表示する項目を、自動的に制限してくれる機能です。 iOSでは、コンテンツブロッカーは、Today WidgetやShare ExtensionのようにApp Extensionとして提供されます。 Mobile Safariでwebを見る時に、cssで指定された特定の要素を非表示にしたり、特定のファイルを読み込まないようにすることができます。 Safari以外のブラウザ(Chromeなど)には影響がありません。 また、iO

    iOS9のコンテンツブロッカー - Toyship.org
    sagaraya
    sagaraya 2015/06/16
  • Objective-CのSingleton、その歴史的経緯など - Toyship.org

    Objective-Cのシングルトンって、昔はcopyWithZoneとかもあって、無駄に面倒だったような記憶があるんだけど、いつの間にか簡単になったんだっけ……?と思ってたので、ちょっと整理してみました。 ARCとGCDが出る前からシングルトンを実装してた人にはちょっと懐かしい話かもしれません。 Singletonとは 改めて説明するまでもないですが、シングルトンとはプロセス内のどこからよんでも同じオブジェクトにアクセスできるようにするデザインパターンです。 どのプログラミング言語においても重要なデザインパターンです。 iOSのシステムフレークワークでもよく使われており、 などはおなじみですよね。 上のメソッドは何回呼んでも同じオブジェクトがかえるようになっているので、いつでも同じオブジェクトに対して処理をすることができます。 自分で実装しなくても、ほとんどの人はシングルトンパターンを使

    Objective-CのSingleton、その歴史的経緯など - Toyship.org
  • キーボードが表示されたときに画面を動かす - Toyship.org

    iPhoneアプリでテキスト入力をするとき、出てきたキーボードの陰に文字入力エリアが隠れちゃって入力している文字が見えないことがありますよね。 そんなときには文字入力エリアを見える位置まで動かして入力しやすくすると、ぐっと使いやすくなります。 (以下のコードは、目的のViewのUIViewControllerクラスに実装します。) Viewにスクロールビューをおく まず、UIScrollViewを作ります。 とはいっても、この処理をするときに UIScrollView が絶対に必要というわけではないんです。 部品一つ一つの位置を動かしていってもいいんですが、UITextFieldが画面にいくつもあるときには、UIScrollViewにのせて全部まとめて動かしちゃうほうが楽ですよね。 なので、ここでは View の上にUIScrollViewをおいて、その上にUITextFieldを二つ配置

    キーボードが表示されたときに画面を動かす - Toyship.org
  • 1