2012-03-20 7 views

答えて

2

あなたは3つのオプション持っている:あなたは主にC++で書くとココアの文字列とコレクションを見込んAPIと通信したい場合は、その後、Core Foundationのは)C(したがって、C++で

1) Foundationの多くのクラスを作成し、相互作用するためのAPIです。多くのNSプレフィックス付きココアクラスには、CF接頭辞付きの同等のものがあり、互換的に使用できます。

2)C++コードをobjective-cコードと統合する場合、interfacesクラスをobjective-C++としてコンパイルするオプションがあり、両方を同じソースファイルに混在させることができます。 vector.push_back([NSString stringWithFormat:@"string"])

3)<objc/runtime.h>を含めることで、C言語のランタイムライブラリとして目的のC言語全体にアクセスすることができます(十分に近い)。私は実際にこれを他の2の1つに使う良い理由について考えることはできませんが、あなたができない正当な理由があれば心に留めておく価値があります。

+0

おかげさまで、#2について教えてください。どうすればobjective-C++としてファイルをコンパイルできますか? – Dmitriy

+1

単純な解決策は、ソースファイルの拡張子を.mmに変更することです。 XcodeでC++ソースファイルを選択し、ObjC++にコンパイラオプションを変更する(インスペクタを使用して) – geowar

関連する問題