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

你有两个选择:

  1. 使用 C 字符串在 C++ 中打开文件([filePath fileSystemRepresentation]返回const char*
  2. 在 Objective C 中打开文件,然后将指针传递给原始字节和大小([myData bytes][myData length])
于 2013-03-04T09:09:37.863 回答
1

当然,可以打开 XML 文件并使用纯 C++ 对其进行解析,但我认为您应该使用 Apple 提供的 Objective-C 类来执行此解析。您可以通过使用 Objective-C++(即混合 Objective-C 和 C++)来做到这一点,只需将 C++ 实现文件扩展名从 重命名.cpp.mm.

我认为这是个好主意的原因:

  1. 它实施起来更快,更不容易出错。
  2. 如果对plist格式进行了更改,您将免费获得这些更改。
于 2013-03-04T09:14:25.467 回答