【问题标题】:How to open txt files created during ios application debug on ios devices [duplicate]如何在ios设备上打开ios应用程序调试期间创建的txt文件[重复]
【发布时间】:2013-10-31 11:43:50
【问题描述】:

我正在使用 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

【问题讨论】:

  • 为什么不开发一个适当的日志类并在应用程序的整个生命周期中使用它?
  • @trojanfoe 感谢您的 cmets,在我的情况下它有点复杂。我收集的数据会被当作另一个软件包的输入,然后我会分析数据。
  • 你是在真正的 iOS 设备还是模拟器上做这个?您如何访问文件取决于答案。
  • @rmaddy 我在真正的 iOS 设备上工作。
  • 您的链接帖子中的说明中有哪些部分您不明白?保存文件后,挖掘保存的文件以获取所需的沙盒文件。

标签: ios xcode debugging


【解决方案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。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-07-08
      • 2016-05-10
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      相关资源
      最近更新 更多