0

最新のSDKを使用してiOSアプリケーションを開発しており、OpenCVも使用しています。

私はいくつかのC++クラスを持っており、これらのC++クラスを使用してXMLのコンテンツを読み取る必要があります。

Objective-Cでは、次のようにします。

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MyFile" ofType:@"xml"];  
NSData *myData = [NSData dataWithContentsOfFile:filePath];  
if (myData) {  
    // do something useful  
}

しかし、どうすればC ++からそれを行うことができますか?

cppにはファイルパスが必要であり、C++からそのパスを取得する方法がわかりません。

私のOpenCVアルゴリズムはすべてC++クラスにあるので、それらのC++クラスで実行する必要があります。

4

2 に答える 2

1

次の 2 つのオプションがあります。

  1. C 文字列を使用して C++ でファイルを開く ( [filePath fileSystemRepresentation]return const char*)
  2. Objective C でファイルを開き、未加工のバイト数とサイズ ([myData bytes]および[myData length])へのポインタを渡します。
于 2013-03-04T09:09:37.863 に答える
1

もちろん、XML ファイルを開いて純粋な C++ を使用して解析することは可能ですが、Apple が提供する Objective-C クラスを使用してこの解析を実行する必要があると思います。.cppC++ 実装ファイル拡張子の名前を からに変更するだけで、Objective-C++ (つまり、Objective-C と C++ の混合) を使用してこれを行うことができます.mm

これが良いアイデアだと思う理由:

  1. 実装が速く、エラーが発生しにくくなります。
  2. フォーマットに変更が加えられた場合plist、それらの変更は無料で入手できます。
于 2013-03-04T09:14:25.467 に答える