【问题标题】:Store an SVG image in Documents directory iOS在 iOS 的 Documents 目录中存储 SVG 图像
【发布时间】:2020-02-20 08:47:25
【问题描述】:

我是 iOS 开发的新手,无法在我的应用程序的文档目录中存储 SVG 图像。我可以访问原始数据并希望以 SVG 格式存储它

原始数据为 NSData 格式。

NSData *rawData = [[NSData alloc] initWithBytes:ptr length:size];

rawData 有下载的文件,请帮我把它保存为 SVG。任何帮助表示赞赏,而且我已经这样做了不到一周,如有任何错误,请见谅。

【问题讨论】:

  • @Smartcat 只写 NSData 工作吗?
  • 当然,如果 NSData 已经采用您想要的文件编码(通常是 UTF8)。如果这是您拥有的 NSData 中表示的内容,则生成的文件应该只是一个 XML 文本文件(在 UTF8 中)。请记住,SVG 只是一种 XML 语法。 (在过去,我实际上编写了第一个 SVG XML 解析器以使 SVG 获得 W3C 的批准。:)
  • 哦,原来你是一只聪明的猫 :p 我会试试看的。非常感谢先生。
  • 哈!不,我只是曾经有一些相当聪明的猫,它们会玩取物、握手等……我选择了别名来纪念它们。他们对我的印象相当低。 :) 如果您对此有进一步的困扰,我的个人资料有一个松弛链接,可以在哪里找到我进行聊天。

标签: ios objective-c svg


【解决方案1】:

是的,这样做:

- (NSString *)writeDataToDocuments:(NSData *)data withFilename:(NSString *)filename {
  NSString *docsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
  NSString *filePath = [[NSString alloc] initWithString: [docsPath stringByAppendingPathComponent:filename]];
  [data writeToFile:filePath atomically:YES];
  return filePath;
}

返回的文件路径是 SVG 现在的存储位置

所以在你的情况下是

NSData *rawData = [[NSData alloc] initWithBytes:ptr length:size];
NSString *fileLocationString = [self writeDataToDocuments:rawData withFilename:@"example.svg"];

现在它被保存了,你有了文件路径

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多