- ベストアンサー
オブジェクティブCの配列の検索方法と条件分岐について
- オブジェクティブCの配列を使って検索ソフトを作成する方法について質問です。
- 質問の内容は、特定の条件を満たすデータを配列から検索し、該当するデータの名前を取得するプログラムを作成したいというものです。
- 具体的なプログラムの作り方について質問しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
CやObjective-Cを使うなら、構造体やクラスを定義して Player[0].number = 1; Player[0].age = 20; Player[0].team = TEAM_DRAGONS; strcpy( Player[0].name , "0番さん") ; (Cの構造体を使った例) みたいにまとめて扱うのが「普通」でしょうね。 正直、今時の言語でこんな個別の配列なんて使用しません。 また、選手の人数を考えたら、データベースにした方が、配列をあれこれ操作するよりずっと簡単なプログラムになると思います。 > その1 > どのようにしてA[0]1 B[0]20 C[0]中日 D[0]0番さん等準備をするのか? ここでの「準備」の意味は? ・元となるデータ 選手名鑑から手入力、というのは非現実的ですから、なんらかの電子化されたデータから変換するのがよいでしょう。 ・プログラムに取りこむ方法 直接プログラム中に書く方法もありますが、データは別ファイルにするのがよいでしょう。 ・プログラム中でのデータの入れ物の準備 先に書いたように、構造体なりクラスなりデータベースなり、使うものにあわせて。 > その2 > 準備をしたデータをどのように条件分岐するのか?(if文などをつかって) データになんの工夫もなければ、頭から順番に調べるしか無いでしょう。 if (( ( 背番号が入力されている ) && ( Player[i].number==入力された背番号) ) || ( (年齢が入力されている ) && ( Player[i].age==入力された年齢) ) || ( (チームが入力されている ) && ( Player[i].team==入力されたチーム) )) { Player[i].nameを表示 } みたいな感じで。 データに細工をして、検索を早くする工夫はいろいろとあります。 ただ、それをやるなら、はじめからデータベースを使うのが楽だと思います。
その他の回答 (1)
- harawo
- ベストアンサー率58% (3742/6450)
C言語の配列を使うのですから、C言語で処理を行えばいいのではないでしょうか?すなわちObjective-Cのジャンルではなく、C言語のジャンルの話ですね。(Objective-Cは、C言語を混在させて記述できることは、ごぞんじですね?) Objective-CのCocoa、iOS Foundationフレームワークには、Collectionクラスというものがあり、NSArray、NSDictionaryなどがあげられます。これらには検索、ソートのメソッドがそろっているので、比較的処理が容易になります。 また、Cocoa、iOSには、データベース処理のための、Core Dataというフレームワークがあるので、それをちゃんと勉強することは、意味あることだと思います。 とにかく、「とりあえずやってみよう」ではなく、基礎部分をもうすこしリサーチしてみては、いかがですか?
お礼
ありがとうございます。 時間がありましたらデータベースも勉強しようと思います。