ios – NSCoding和NSData之间有什么关系?

ios – NSCoding和NSData之间有什么关系?,第1张

概述我是iOS编程的新手,我刚刚学到了一些关于保存/加载对象的基础知识.在我的书中有一个将图像保存到文件的示例: NSData *data = UIImageJPEGRepresentation(someImage, 0.5);[data writeToFile:imagePath atomically:YES]; 我的书还有一个将“论文”对象保存到文件的例子(“论文”对象有一个标题字符串和另一个作 我是iOS编程的新手,我刚刚学到了一些关于保存/加载对象的基础知识.在我的书中有一个将图像保存到文件的示例:

NSData *data = UIImageJPEGRepresentation(someImage,0.5);[data writetofile:imagePath atomically:YES];

我的书还有一个将“论文”对象保存到文件的例子(“论文”对象有一个标题字符串和另一个作者字符串):

essay.m符合< NSCoding>协议:

- (voID) encodeWithCoder:(NSCoder *)aCoder{    [aCoder encodeObject:self.essayTitle forKey:@"essayTitle"];    [aCoder encodeObject:self.essayAuthor forKey:@"essayAuthor"];}- (instancetype) initWithCoder:(NSCoder *)aDecoder{    self = [super init];    if (self) {        _essayTitle = [aDecoder decodeObjectForKey:@"essayTitle"];        _essayAuthor = [aDecoder decodeObjectForKey:@"essayAuthor"];    }    return self;}

在essayStore.m中:

[NSKeyedArchiver archiveRootObject:self.myEssay tofile:somePath];

我有三个问题:

>我何时应该使用NSData将对象保存到文件/文件中,何时应该符合< NSCoding>协议将对象保存到文件/文件?
>我应该何时将所有对象保存到单个文件中?何时应为每个对象保存一个文件?
>如果我的论文对象中有图像,我该如何将其与图像一起保存?

谢谢!

解决方法 1. NSCoding是一种协议,是将数据保存到文件的方法之一.优点是,如果使用此方法,您可以存储对象.
如 Apple class reference中所述,NSData通常用于数据存储,在分布式对象应用程序中也很有用,其中数据对象中包含的数据可以在应用程序之间复制或移动.
2.这取决于您保存数据的需要.它通常足以将所有对象存储在单个文件中,这些通常是表示实体的对象.

3.您可以参考以下教程:
  – 列出项目NSCoding Tutorial for iOS

编辑:

如果您想了解编码图像,请查看此stackoverflow answer.
虽然我不喜欢编码图像.需要将复杂对象转换为@Anoop VaIDya在评论中提到的原始数据.

是的,可以编码由您创建的类的对象.但是你必须在其中实现NSCoding协议.以下链接是两级编码的恰当示例,如您所要求的:

> Archiving Objective-C Objects with NSCoding

希望这可以帮助!

总结

以上是内存溢出为你收集整理的ios – NSCoding和NSData之间有什么关系?全部内容,希望文章能够帮你解决ios – NSCoding和NSData之间有什么关系?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1072195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存