寺子屋管理者

  • アバター画像

教えて!Objective-C

公開寺子屋 2 年と 10 か月前に活動

Objective-Cについての寺子屋です。

BLOCKSの考え方を教えてもらえないでしょうか。 (3件の投稿)

← 寺子屋講義   寺子屋講義案内
  • アバター画像 たつお による4 年と 4 か月前の発言:

    今年から開発を始めて、写真管理のアプリを作ろうと思っているものです。
    写真管理は、ALAsset Libraryというフレームワークを使うのですが、そこでお題のBLOCKSという考え方が出てきました。

    本やネットで調べた感じですと、
    1.関数を実行
    2.その結果を変数に代入

    どんな形で変数に代入されているのか、イメージが出来ません。
    ログや、インスタンスなどもBLOCKSの関数の中でかけるので、どのように情報を保持しているのかと考え込んでしまいます。

    抽象的で且つ具体性がなくて申し訳ないですが、考え方のヒントでも教えて頂ければと思います。
    よろしくお願い致します。

  • アバター画像 reborn による4 年と 4 か月前の発言:

     Blocksの具体的な機構の理解は結構ハードル高いですよ。
     基本、ソース記述部分で暗黙に作成される特殊なオブジェクトなんですが…
     terazzoさんて方が、かなり突っ込んだ調査してくれてます。このころはARCがなかったんでGCですね。GCやめるみたいだが…

    http://d.hatena.ne.jp/terazzo/20101103/1288807194

     スタック/ヒープ領域と関数ポインタを知っているなら、以下のページにある「Blocksプログラミングトピックス」を読んで、だいたいを理解でいいと思います。
     私はそうしています。

    https://developer.apple.com/jp/devcenter/ios/library/japanese.html

     スタック/ヒープ領域と関数ポインタを知らないなら、BLOCKSを具体的に理解するためには、先にそちらから学習する必要があります。上のドキュメントでも、それを知ってる前提で話が進むんで…

     スタック/ヒープ領域と関数ポインタについては、一度書いてみたんだけど、これでイメージつかめますかね。

    スタック領域:
    http://ameblo.jp/xcc/entry-11126502451.html

    ヒープ領域:
    http://ameblo.jp/xcc/entry-11192076953.html

    関数ポインタ:
    http://ameblo.jp/xcc/entry-11207702325.html

  • アバター画像 たつお による4 年と 4 か月前の発言:

    rebornさん、ご回答ありがとうございます。
    また、段階的に解説していただきありがとうございます。
    私のレベルだとまず、スタック、ヒープ、関数ポインタから理解していこうと思います。
    まずは、イメージがつかめるまでがんばってみます!
    また、気分転換にBlocksの中でいろいろといじってみて、想定通りの動作がするかなどを試していこうと考えてます。