【问题标题】:Initializing Nsdata with Nsdata as a string使用 Nsdata 作为字符串初始化 Nsdata
【发布时间】:2014-06-22 00:49:01
【问题描述】:

我有一些 NSData 输出,我想将其转换为字符串。

NSString * test = [NSString stringWithFormat:@"myfile.txt];    
NSData *myData = [[NSData alloc] initWithContentsOfFile:(@"%@", test)];

这个 NSData 被保存到一个文件中,它看起来像:21fa9731 27c67c00 da1c3349 d82470eb 56f97b88 559f406c 6abecbb7 de020007 47a4541d 99c9c5e7 883f8bf1 165fba39

您知道如何将这个字符串恢复为“myfile.txt”中的样子吗?

谢谢!

【问题讨论】:

  • 为什么要使用 NSString 的实例来初始化 NSData 的实例?只需执行 NSData *myData = [NSData dataWithContentsOfFile:@"myfile.txt"];

标签: objective-c xcode


【解决方案1】:

如果数据文件位于 HDD 上(不在应用程序包中),您必须提供数据文件的完整路径。

NSString * test = [NSString stringWithFormat:@"myfile.txt];    
NSData *myData = [[NSData alloc] initWithContentsOfFile:(@"%@", test)];

NSString* myString = [NSString alloc]initWithData:myData
                    encoding: NSUTF8StringEncoding];

选择保存数据文件的编码。

【讨论】:

    【解决方案2】:

    我不知道你的问题是什么。您可以与我们分享文件的编写方式,以便我们更接近一点。

    但是,您的操作过于复杂,因此容易出错。以下将用于读取具有常量名称 fo myfile.txt 的文件。

    NSData *myData = [[NSData alloc] initWithContentsOfFile:@"myfile.txt"];
    

    坦率地说,我什至不知道myfile.txt 应该在哪个目录中。当然,还有比直接在代码中使用文字更好的方法来处理常量文字。

    顺便说一句,您在 myData 中实际收到了什么?无效的?

    (这更像是评论而不是答案,但答案的格式要好得多。)

    【讨论】:

      猜你喜欢
      • 2019-02-15
      • 2011-02-08
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多