将具有String和NSImage属性的类导出到文件

格伦斯托里

我有一个我希望能够打开并导出到文件的类。不需要编辑-这只是与我的应用程序的其他用户共享零件对象CoreData数据库的一种方式,因此我认为我不需要子类化的复杂性NSDocument

该类非常基础,具有两个属性String和一个文件名,用于NSImage引用应用程序沙箱中的图像。

最初,我想到了使用文档包,基本上是一个带有图像的文件夹(如果需要)和一个带有字符串和图像文件名的plist。现在,我倾向于创建一个仅用于导出和导入的类,该类用于NSCoding将图像和字符串保存到文件中。

这是我不确定的内容:

  • 这是一个好主意吗?我在这里想念什么吗?
  • 如何将具有NSImageString属性的对象数组保存到单个文件中?我知道我可以很容易地保存图像,但是我可以将它们捆绑到一个文档中吗?NSCoding这样做的方法吗?
  • 我需要先将转换NSImageNSData吗?
  • 我的解码器如何知道文件的String哪一部分是a和哪一部分是a NSImage

我已经完成了研究!有很多有关保存图像或保存的信息NSDocument,但我只想为用户提供一种简单的方法,即可任意数据导入和导出应用程序的核心数据存储。

阿敏·内格姆·阿瓦德(Amin Negm-Awad)

使用NSCoding,可以保存每个对此协议具有内置支持的类,也可以添加它。两者NSImage和-当然-都NSString符合NSCoding您只需向NSCoding自定义类添加支持,这非常简单

- (void)encodeWithCoder:(NSCoder*)coder
{
  [coder encodeObject:self.stringProperty forKey:@"String Property"];
  [coder encodeObject:self.imageProperty forKey:@"Image Property"];
}

- (instancetype)initWithCoder:(NSCoder*)coder
{
  self = [super init]; // or `-initWithCoder:, if it is supported
  if (self)
  {
    self.stringProperty = [coder decodeObjectForKey:@"String Property"];
    self.imageProperty = [coder decodeObjectForKey:@"Image Property"];
  }
  return self;
}

如果要将数据另存为属性列表文件,则只能使用属性列表类。NSString是一个属性列表,但NSImage不是-当然,您的自定义类也不是。因此,您必须将NSImage和的自定义类的实例转换为的实例NSData,因为这NSData是一个属性列表。您可以使用– drum-roll –来做到这一点NSCoding只需使用带密钥的存档器。+archivedDataWithRootObject:NSKeyedArchiver的结果是的实例NSData使用的方法NSKeyedUnarchiver

但是,如果您不想使用通用属性列表工具进行编辑,则没有什么理由选择属性列表的文件格式。

因此,直接回答您的问题:

这是一个好主意吗?我在这里想念什么吗?

没关系

如何将具有NSImage和String属性的对象数组保存到单个文件中?

由于NSArray符合NSCoding并且是属性列表,因此这两种方法都可以立即使用。

我知道我可以很容易地保存图像,但是我可以将它们捆绑到一个文档中吗?

您是文件的所有者,并定义文件格式。前进吧。

NSCoding是这样做的方式吗?

是的。

我需要先将NSImage转换为NSData吗?

仅当您要保存属性列表文件时。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将具有String和NSImage属性的类导出到文件

来自分类Dev

将具有0值的2D数组导出到txt / csv文件

来自分类Dev

SSIS将视图导出到具有固定间距的文本文件

来自分类Dev

如何将命名的data.frame列表导出到具有purrr名称的文件

来自分类Dev

是否可以将具有较大CLOB条目的表导出到平面文件?

来自分类Dev

将列名称中具有特殊字符的SAS数据导出到.CSV文件

来自分类Dev

如何将具有3个参数的数组导出到json文件?

来自分类Dev

Bash脚本将txt文件中的第一列导出到具有Header的excel

来自分类Dev

将数据导出到具有固定长度记录的文本文件

来自分类Dev

将所有xml节点的特定属性值导出到另一个文件

来自分类Dev

将所有xml节点的特定属性值导出到另一个文件

来自分类Dev

将每个html类导出到pdf文件

来自分类Dev

将数据从嵌套的 c# 类导出到 csv 文件

来自分类Dev

将所有Blob从sqlite导出到文件

来自分类Dev

将所有警告导出到XCode文件中

来自分类Dev

将所有msbuild导入的目标导出到文件

来自分类Dev

如何将txt文件中具有相同键、不同值的多个字典导出到csv

来自分类Dev

创建类的实例并导出到文件

来自分类Dev

将数据库(字节数组)中的多个文件(具有不同的文件类型)导出到单个压缩文件中

来自分类Dev

将带有抽象类和普通类的C ++包导出到Python

来自分类Dev

将JavaFX模型导出到STL文件

来自分类Dev

将大数据导出到CSV文件

来自分类Dev

BigQuery将表格导出到CSV文件

来自分类Dev

将Quartz Composition导出到.mov文件

来自分类Dev

将字典导出到json文件

来自分类Dev

将.po文件导出到.csv

来自分类Dev

将表导出到Excel并打开文件

来自分类Dev

将结果导出到txt文件

来自分类Dev

将多范围导出到txt文件

Related 相关文章

  1. 1

    将具有String和NSImage属性的类导出到文件

  2. 2

    将具有0值的2D数组导出到txt / csv文件

  3. 3

    SSIS将视图导出到具有固定间距的文本文件

  4. 4

    如何将命名的data.frame列表导出到具有purrr名称的文件

  5. 5

    是否可以将具有较大CLOB条目的表导出到平面文件?

  6. 6

    将列名称中具有特殊字符的SAS数据导出到.CSV文件

  7. 7

    如何将具有3个参数的数组导出到json文件?

  8. 8

    Bash脚本将txt文件中的第一列导出到具有Header的excel

  9. 9

    将数据导出到具有固定长度记录的文本文件

  10. 10

    将所有xml节点的特定属性值导出到另一个文件

  11. 11

    将所有xml节点的特定属性值导出到另一个文件

  12. 12

    将每个html类导出到pdf文件

  13. 13

    将数据从嵌套的 c# 类导出到 csv 文件

  14. 14

    将所有Blob从sqlite导出到文件

  15. 15

    将所有警告导出到XCode文件中

  16. 16

    将所有msbuild导入的目标导出到文件

  17. 17

    如何将txt文件中具有相同键、不同值的多个字典导出到csv

  18. 18

    创建类的实例并导出到文件

  19. 19

    将数据库(字节数组)中的多个文件(具有不同的文件类型)导出到单个压缩文件中

  20. 20

    将带有抽象类和普通类的C ++包导出到Python

  21. 21

    将JavaFX模型导出到STL文件

  22. 22

    将大数据导出到CSV文件

  23. 23

    BigQuery将表格导出到CSV文件

  24. 24

    将Quartz Composition导出到.mov文件

  25. 25

    将字典导出到json文件

  26. 26

    将.po文件导出到.csv

  27. 27

    将表导出到Excel并打开文件

  28. 28

    将结果导出到txt文件

  29. 29

    将多范围导出到txt文件

热门标签

归档