色々ややこしいBlocks。 宣言の仕方から、内部実装まで色々と調べたりしたのでメモ。 基本形 まずは基本形。
概要 Blocksはみなさんよく使いますでしょうか。 私は最初objective-cを勉強したときにBlocksのややこしい書き方を見て ああこれは絶対使えるようにならないと思ったのですが、 使えば使うほど便利な場面が多くて今ではなるべく使えないか考えるようにしています。 そこで基本をおさらいつつ、どんなときに使っているか書きたいと思います。 そもそもBlocksってなに? ざっくり言うと関数を式として宣言、作成することが出来る仕組みです。 なので、関数をそのまま変数のように関数に受け渡すことが出来ます。 調べると結構説明が難しい説明がたくさん書いてあるのですが、 「関数を変数として扱える仕組み」、と覚えておけばひとまずは良いかなと思います。 書き方はこのあたりを参考にすると良いかと思います。 ■ブロック構文の基本的な使い方 http://www.objectivec-iphone.com
半年までは、Objective-Cでコールバックの処理は、delegateを使って実装していました。しかし、delegateによるコールバックは処理の繋がりが分かりにくいというデメリットがあります。 これは皆さん感じるところだと思いますが、実際に最近のObjective-C開発は、Blocksを使って記述するのがトレンドだと思います。 ただ、メモリ管理に関して少し注意しなければならない点があるので、検証結果も合わせて記していきたいと思います。(少し長くなるので2回にわけて書きたいと思います。) Blocksで処理を行う これは簡単なサンプルです。BlocksRunnerクラスは、Blocksで渡された処理を保持し、runメソッドが呼ばれた時にその処理を実行します。 int main(int argc, const char * argv[]) { @autoreleasepool { Bl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く