0

我正在使用 Xcode 4.6 开发 iPad 应用程序。为了收集有关应用程序的一些关键信息,在调试过程中(对于真实的 ios 设备)我将一些数据放在一个文本文件中,可以使用以下代码演示一个示例:

   std::ofstream f;
    f.open("test.txt",std::ios::out ) ;
    for (int i=0;i<100;i++)
    {
        f << i << std::endl;
    }
    f.close() ;

运行应用程序后,我想检查 中的数据test.txt,但是,我不知道如何找到它。这篇文章似乎很有帮助,但我找不到Application Data他的指示。

4

2 回答 2

1

Application Documents 文件夹可通过 iTunes 访问。但为此,您必须为应用程序启用文件共享。这是启用文件共享的链接https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/CoreServicesLayer/CoreServicesLayer.html#//apple_ref/doc/uid/TP40007898-CH10-SW30

但最好使用 NSLogs 或任何其他自定义 Logger。

于 2013-10-31T11:50:30.410 回答
1

您需要设置输出文件的完整路径,因为默认情况下,当前工作目录将是您无法写入的应用程序包目录(您没有在文件打开语句中指定完整路径,因此它将使用cwd)。

因此,如果您希望它出现在应用程序的文档目录中,您需要使用 Objective-C(或 Objective-C++)来获取它,并将该路径传递给您发布的 C++ 方法。

我建议使用 Objective-C++ 来允许您混合编程语言(将文件扩展名更改为.mm):

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
std::string docDir = [paths[0] UTF8String];
std::ofstream f;
f.open(docDir + "/test.txt", std::ios::out);
for (int i=0;i<100;i++)
{
    f << i << std::endl;
}
f.close();
于 2013-10-31T11:55:24.443 回答