如何在ios设备上打开ios应用程序调试期间创建的txt文件

时间:2013-10-31 11:43:50

标签: ios xcode debugging

我正在使用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中的数据,但是,我不知道如何找到它。 This post似乎很有用,但我无法按照他的指示找到Application Data

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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();