タグ

Blocksに関するjustoneplanetのブックマーク (4)

  • Blocksを使ったHTTPリクエスト - mixi engineer blog

    聖闘士星矢Ωが、思ったより面白くて小宇宙が軽く爆発しそうなk_kinukawaです。 今回は、iOSアプリでHTTP通信を行うときの話です。 2012年4月27日 「メインスレッド上で処理している」について一部修正 従来のNSURLConnectionは、レスポンスをdelegateでハンドリングしていました。 そのため、リクエストを投げる箇所とレスポンスを受ける箇所がコード上で離れてしまい、可読性がよくありませんでした。 また、レスポンスを受け取ったあとの処理についても、delegate内で条件分けをして処理をしているうちに分岐/ネスト地獄になりがちでした。 一方、iOS5からNSURLConnectionにsendAsynchronousRequest:queue:completionHandler:というメソッドが誕生しました。 引数を見る限り、GCDを使って非同期リクエストをする系

    Blocksを使ったHTTPリクエスト - mixi engineer blog
  • いろいろな UIAlertView - アカベコマイリ

    iPhone でユーザー通知や警告などに使われる UIAlertView について代表的なカスタマイズ方法をまとめてみる。 2013/10/28 追記 この記事で紹介している UIAlertView - addSubView を利用したカスタマイズは、iOS 7 以降では利用できません そのため代替案を検討する記事を書きました。 iOS 7 以降の UIAlertView カスタマイズ代替について考える セレクターをボタン毎に設定する UIAlertView の内容やボタンが複数あるときに標準の UIAlertViewDelegate - clickedButtonAtIndex でハンドリングするのは非常に面倒だ。内容を判定するには UIAlertView の tag プロパティを利用するかオーナーとなるクラス側に状態を持つことになる。押されたボタンについてはインデックスしか情報がないた

  • Objective-C がこの四年間でどれぐらい進化したのか一目でわかるテストケース

    Twitterに流したら思ったよりも好評でしたので、ブログにも上げておきます。 こちらがiOS 2地点でのNSURLConnectionクラスを使った非同期通信のテストケース。 こちらがiOS 5でのNSURLConnectionクラスを使った非同期通信のテストケース。 Blocksはやっぱり偉大です。一つしかテストケースがないうちはまだマシなのですが、これが10個とかになると楽さが全く違ってきます。ぜひためしにURLだけ変えて同じテストケースを10個作ってみてください。iOS 5のBlocksを使ったコードはほとんどコピペだけで終わりますが、iOS 2でのdelegateを使ったコードは他にも変更しなければならない点が多数出てくるはずです。 また実際にこのコードを走らせてみると、理由はよくわからないのですがiOS 5で追加されたAPIを使ったコード(Blocks)のほうがそうでないコード

  • Objective-CエンジニアのためのObjective-C Blocks入門 - terazzoの日記

    Mac OS X v10.6以降とiOS 4.0以降ではObjective-CにBlocksというシンタックスが追加されているらしい。 Blocks Programming Topics: Introduction http://unknownplace.org/memo/2010/05/11/1/ RubyエンジニアのためのObjective-C Blocks入門 : As Sloth As Possible 後者のエントリから引用: void (^f)(id) = ^(id x) { NSLog(@"世界の全てを敵に回しても、僕は%@の味方だ", x); }; f(@"うどん"); id型(Object)としてコレクションに突っ込んだりも出来るし、関数呼び出しのように使うこともできるらしい。つまり…どういうことなんだってばよ? てことで調べてみた。 まとめ Blocksは__NSGlo

    Objective-CエンジニアのためのObjective-C Blocks入門 - terazzoの日記
  • 1