広告スペース(バナー)
🍎Objective-C レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 29 / 68

高階関数(ブロックを引数として渡す)

このレッスンでは、Objective-Cでブロックを引数として渡す高階関数の書き方を学び、処理そのものを部品として扱えるようになることを目標にします。「Objective-C ブロック 使い方」で調べている方向けです。

関数の引数として、別の処理のかたまり(ブロック)を渡せることを高階関数と呼びます。「作業のやり方だけを指定して、実際の作業は相手に任せる」ようなイメージです。sortedArrayUsingComparator:に比較ルールを渡すのが代表例です。

サンプルコードでは、sortedArrayUsingComparator:^NSComparisonResult(NSNumber *a, NSNumber *b) {...}のように、並び替えの基準をブロックとして渡すことで降順に並び替えています。^記号で始まるのがObjective-Cのブロック構文の特徴です。

初心者がよくつまずくのが、ブロックの記法に慣れないことです。^戻り値の型(引数の型 引数名) {処理}という書き方に慣れないうちは、通常のメソッド定義との違いに戸惑うことがあります。

実際の開発現場では、非同期処理の完了通知(コールバック)など、ブロックはiOS開発の様々な場面で活用される重要な機能です。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではObjective-Cを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
並び替えのルールを自由に切り替えられる、柔軟なソート処理が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)