2012-05-13 18 views
0

NSData、NSDictionary、NSArrayがC++ライブラリに含まれているかどうかは疑問でした。もしそうでなければ、これらのクラスを提供する既知の一般的なフレームワークはありますか?NSData、NSDictionary、NSArray相当品C++

よろしく本当に

答えて

1

STLの代わりにNSArrayのを使用することができます代わりに、NSDictionaryの及びベクターを用いることもできるマップを持っているが、もちろん "特定の機能が不足している可能性があり、より多くのコーディングが必要な場合があるため、「変換」は簡単ではありません。例えば。 NSDictionaryのセレクタdictionaryWithContentsOfURL:を "エミュレート"するには、URLを解析するためにC++で特別なコーディングが必要です。また、リモートリソースであれば、接続して取得してからデータをシリアル化しません。もちろん、他のライブラリも役立つかもしれませんが、NSDictionary(と他のもの)の特別な機能を移植する必要がある場合は、より多くのコードを書く必要があります。

一方、基本的な辞書と配列の機能のみを使用すると、「変換」がかなり簡単になることがあります。

NSDataの同様の引数です。これはstd::stringbufで「エミュレート」できます。

GNUstepライブラリを使用することもできます。 GNUstepはGNUオープンCocoaフレームワークで、Cocoa(AppKitとFoundationクラス)のほぼすべてを提供します。 GNUstepはApple Mac OS X以外のプラットフォームにも存在するため、これらのプラットフォームでCocoaアプリケーションを移植することができます。 Objective-C++を使用すると、STLとCocoa/GNUstepの両方のフレームワークを使用することができ、理論的には(OOプログラミングの制限と異なる "起源"のクラス/オブジェクト間の "相互作用"そのような混合物を試しましたが、paying attentionはいくつかのメリットがあります)

3

ない、これらのクラスの機能は言語によって大幅に支配されているので。

一方std :: vector(配列とデータ)とstd :: map(辞書)があります。これらは全く同等ではありませんが、同様の目的を果たします。

4

は、これらを参照してください。

にNSArray:Vector

NSDictionaryの:Map

+0

はい、ベクターオブジェクトがコピーされます。どのようにちょうどリンクを格納するには? – SAKrisT

+0

私はshared_ptrとweak_ptrという非常に有用なものを見つけました:) – SAKrisT

関連する問題