[iPhone SDK] iOS 4で導入された Blocks とは

公開日: : 最終更新日:2010/09/14 iPad, iPhone ,

Game Center を試していると、たくさんの^ (Caret というらしい。自分はハットと覚えたが) が出てきて、違う言語のコードを読んでいるような気になるが、これは、iOS 4 で導入されたBlocks の構文だ。
Blocks はAppleがドキュメントを用意してくれているのだが、まだよく分かっていないのでWebを放浪しながら理解しようと試みてみる。
A Short Practical Guide to Blocks
Blocks Programming Topics

この記事はよかった。
Programming with C Blocks on Apple Devices
しかしBlocksひとつでこんなに長い説明が必要になるとは。

ブロックの定義の書き方

戻り値の型 (^ブロック名)(引数の型)

ブロックの実装の書き方

^(戻り値の型)(引数の型 引数名) {

};

実際には、

  • 返り値の型が返り値から分かる場合には、返り値の型を省略できる
  • 引数が無い場合は省略できる

というルールがあるので、^(void)(void) {}; と書くことはなく、^{}; となる。
これもよく見るパターンだ。
また、返り値の型は返り値から判断できるので、たいてい返り値の型は省略されるようだ。

ブロックはCの拡張とObjective-Cの拡張があるので、それもわかりづらさを助長している。
また、ブロックはスタック領域(自動変数の領域)にとられるので、何もしないとメモリが解放されてしまう。このため、Block_Copy したり、copy したりしないといけない。
これも記述的にかなりややこしくなる要因の一つだ。

例えばこんな感じで、ブロックを返す場合には copy して、後で解放されるようにautoreleaseもする必要があるようだ。

まだBlocksのことが載っている本は少ないと思うが、この本には一応数ページ載っていたので紹介。

Objective-C逆引きハンドブック
Objective-C逆引きハンドブック 林 晃

シーアンドアール研究所 2010-02-26
売り上げランキング : 6274

おすすめ平均 star
starついに出た日本語リファレンス
star初心者に優しくない内容

Amazonで詳しく見る by G-Tools

関連記事

simplism 0.7mm Ultra Thin Case for iPhone 6 Plus(5.5inch)購入

Amazonを見ているとiPhone 6 Plus の筐体はそれなりに傷が付きや

記事を読む

no image

View-Based ApplicationにUINavigationControllerを追加する方法

(いろいろ間違っていたので 2009/05/13 更新) (さらに 2009/08/08 更新) こ

記事を読む

LogLocations 1.4.5 リリース

LogLocations 1.4.5 をリリースしました。 LogLocat

記事を読む

no image

iPhone開発のネタ帳: sonsongithub の PopupView を使ってみた

自作アプリで sonson 氏の PopupView を使わせていただいてます。 Softwar

記事を読む

Apple Special Event 2015

https://www.gizmodo.jp/2015/09/applelive_event_ip

記事を読む

no image

Pebble E-Paper Watch 届いた! 感想。

追記: Pebble 向けにアプリを作りました。 Kickstarter で iPhone/A

記事を読む

no image

最近読んだ本 iPhoneデジカメプログラミング

カメラアプリを作る予定はなかったので2011年3月に発売されてからしばらく様子を見ていたが、そろそろ

記事を読む

no image

2009年9月発売のiPhone SDK関連書籍

9月は書店に行くたびにiPhone SDK関連本が増えていて驚いた。 調べてみたところ、少なくとも下

記事を読む

no image

iPadアプリ おんぷちゃん が雑誌に紹介されました

いろいろあって、iPhone/iPad アプリのおんぷちゃん がムジカノーヴァ2011年2月号で紹介

記事を読む

no image

見たかった映画「ソーシャル・ネットワーク」を見る複数の方法

かなり見たかったけれどもふたごが小さくてとても見に行けなかった映画、「ソーシャル・ネットワーク」がも

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

REALFORCE MOUSE RFM01U11 ハンズオン中

【Hothotレビュー】今までにないクリック感がゲームプレイも変える

Appleシリコン搭載Mac発表?

いつからか、下記の文言が App Store Connect

[iOS] 取り下げになったアプリを更新

しばらく更新していなかったら App Store から取り下げに

m5stack + MH-Z19B で CO2 濃度を測ってみた

テレワーク期間が長く続いているが、冷房をかけて閉め切った部屋

自動昇降機能付きデスクFLEXISPOT EJ2購入

今後もテレワークが長く続きそうなので、憧れだった自

→もっと見る

PAGE TOP ↑