これは非常に初心者ですが、iPhone APIはどのデータ構造(リンクリスト、ハッシュマップなど)を提供していますか?iPhone開発:どのような種類のデータ構造が利用できますか?
答えて
のいずれかのデータ構造をiPhone SDKと共にCまたはC++に実装することができます。
たとえば、私はstandard libraryをたくさん使用します。
それに加えて、あなたはまた利用できるようにCocoaの複雑なデータ構造を使用することができます。
- にNSArray
- NSDictionaryの(ハッシュ)
- NSSetあなたは仲間を持つことができ
(セット)それらに関する文書here。
技術:Objective-C自体はこれらのクラスを提供しません。これらは* Cocoa *の一部です。 Objective-Cは使用される言語に過ぎません。大したことではありませんが、これらのことを正しく参照する習慣を身につけることは良い考えです。 ;) – hbw
同意します。あなたの言っていることを反映するために私の答えを変えるつもりです。ありがとう! –
Objective-C言語では、リンクリストなどの固有のデータ構造は提供されませんが、C/C++コードベースに基づいているため、CまたはC++で実装できるものはすべて直接Objective-C(リンクされたリストやその他のデータ構造を含む)
Objective-Cは決して「C++コードベースに基づいていません」 C、はい、でも何でもC++を使うにはあなたの道から出なければならない(と幾分マゾヒスティックである) –
ココア(MacとiOSの両方の利用可能なフレームワークは)NSArray
、NSDictionary
、およびNSSet
、並びにそれらの可変変異体を含むseveral common collection types、実装しています。 (Leopardはまた、ガーベジコレクション環境で使うのに便利な追加オプション(弱参照のような)を持つ配列/辞書/セットであるNSPointerArray
,NSHashMap
、およびNSHashTable
も紹介しましたが、これらのクラスは現在利用できませんiPhoneはガベージコレクションをサポートしていないので、現時点ではほとんど意味がありません)。これらのクラスは非常に高速で、どのCocoaアプリケーションでも汎用目的に適しています。
(1)ビルディングブロックとしてこれらを使用してより複雑な構造を作成する、(2)既存のサードパーティコードを活用する、または(3)独自のデータ構造を最初から構築するといった選択肢があります。
1つのオプションは、私が維持しているオープンソースのObjective-CフレームワークであるCHDataStructures.frameworkです。スタック/キュー/デキュー、リンクされたリスト、ソートされたセットなど、その他の共通のデータ構造を実装しています。これらの構造は、NSCodingとNSCopying(10.5+ではNSFastEnumeration)を採用しているため、ネイティブObjective-Cコードとシームレスに動作します。このプロジェクトでは、iPhoneで使用する静的ライブラリを構築することもできます。このフレームワークはオープンソースなので、必要に応じて関連するコードだけをプロジェクトに直接組み込むこともできます。
はでC++とSTLの構造を使用していますが、Objective-CとC++の混在ははるかに混乱しやすく、特に初心者にとっては困惑する傾向があります。これはC++に対するbashではなく、単に「when in Rome」の原則です。 C++を使用する場合、もちろんSTLが望ましいアプローチです。既にC++でミキシングしているのであれば、STLが良い選択であるかもしれないということで、おそらく十分に快適です。そうであっても、ネイティブのCocoaコレクションを使用すると、自明で読みやすいコードが生成されます。
downvoteの必要性を感じる人は、*なぜ*彼らが応答を感じるかについていくつかのフィードバックを残すなら、 "役に立たない" ... –
私はNSHashMap、NSHashTableまたはNSPointerArrayがiphoneで利用できるとは思わない。 –
Carlは正しいですし、私はこの情報をどこにも見つけられなかったので、明確に述べたいと思います:NSHashMap、NSHashTable、NSPointerArrayはiPhone SDKでは利用できません。ボックスポインタにNSValueを使用する方法については、この質問を参照してください: http://stackoverflow.com/questions/393662/does-using-lists-of-structs-make-sense-in-cocoa – Felixyz
- 1. どのような種類のデータ構造ですか?
- 2. どのような種類のデータが返されますか?
- 3. どのような種類のデータ構造で並列処理が可能になるか
- 4. 木構造データをどのように分類できますか?
- 5. どのようなBASEデータベース開発アプリケーションが利用できますか?
- 6. Yesod Hamletではどのような種類のdoctypeが利用できますか?
- 7. iOS 3.2以降では、どのような種類のウェブサーバ通信技術が利用できますか?
- 8. それはどのような種類のデータですか?
- 9. さまざまな種類のデータ型をサポートするデータ構造
- 10. 構造体の種類が異なります
- 11. is_detectedでどのような種類のテンプレートを使用できますか?
- 12. ハスケル - 私は、データ構造のいくつかの種類がある場合はどのようにリスト
- 13. どのような種類のアルゴリズムを使用しますか?
- 14. どのような種類のインデックスを使用しますか?
- 15. どのような種類のデータがリレーショナルではありませんか?
- 16. どのような種類のログイン用のHTTPリダイレクトですか?
- 17. iPhoneのHTTPS - どのような種類の暗号化ですか?
- 18. xsd:QNameにはどのような種類のデータが適していますか?
- 19. データをどのように構造化できますか?
- 20. どのような種類のファジィフラッドフィルアルゴリズムがありますか?
- 21. ユーザーがどのような種類のファイルを選択できますか?
- 22. redisで5種類のデータ構造を完全に使用する方法
- 23. Windows開発者にはどのような種類のポーリングサーバーパターンが存在しますか?
- 24. 今日ソケットプログラミングを使ってどのような種類のアプリが開発されていますか?
- 25. 再利用可能なライブラリをどのように構造化しますか?
- 26. Androidゲーム開発:どのデータ構造を使用するのですか?
- 27. iPhone 7とUIFeedbackGeneratorでは、どのシステムアクションがどのような種類のタプティックフィードバックを実行しますか?
- 28. 開発ツールにはどのような.NETライブラリの種類とバージョンが必要ですか?
- 29. Reduxステートツリー構造: "形式/詳細量が異なる同じ種類のデータ"
- 30. Java - 利用可能なデータ構造を利用するか新しいデータ構造を作成する
「NS(Mutable)Array」は必ずしもCスタイルの配列にオブジェクトポインタを格納するとは限りません。それは、Cスタイルの配列、リンクされたリスト、およびそれを使用する方法に基づいて他の任意の数の構造の間で、内部表現を動的に変更します。 –