问题标签 [nskeyedarchiver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1080 浏览

key - 我可以获得 NSKeyedUnarchiver 的所有密钥吗?

我想用这些步骤做点什么:

  1. 用 NSKeyedArchiver M 编码一种对象 A,我可以得到一个 NSData X。
  2. 用 NSData X 中的 NSKeyedUnarchiver N 初始化另一种对象 B。A 和 B 的名称相同,所以有可能(我做过实验)。
  3. 然后我想对 B 进行编码,但我不知道 B 是否丢失了 X 的一些数据,因为 A 和 B 可能具有不同数量的属性。

所以我想从 N 中获取所有键和值。我该怎么做呢?

我不太了解 NSKeyedUnarchiver,请帮助我。

0 投票
3 回答
2827 浏览

serialization - 序列化与归档?

iOS 文档区分“序列化”和“归档”。这是一个普遍的区别(即,在其他语言中存在)还是特定于 Objective-C?另外,这两者有什么区别?

0 投票
2 回答
372 浏览

iphone - NSKeyedUnarchiver:iPhone .v。模拟器

我正在做:

存档的字符串是UITextField我们在此处取消存档的文本。我试过有和没有current_path

在模拟器中运行时,这一切都很好(类成员NSString *my_string_不是零),但在我的 iPhone 上运行时my_string_是零。

这是为什么?


感谢大家的快速回复。

添加到 Jason Coco 的答案,在此处存档和取消存档:

0 投票
1 回答
494 浏览

iphone - NSKeyedArchiver 只编码数组的一部分

我有一个有时会更改的对象列表,并且我想在应用程序关闭或移至后台时在设备上保留一个持久缓存。列表中的大多数对象都不会改变,所以我想知道保存列表的最佳方法是什么。我有两个主要的选择:

  1. 使用 NSKeyedArchiver / unArchiver - 这是最方便的方法,因为我正在序列化的对象包含其他自定义对象,因此我可以为每个对象编写自定义编码方法。主要问题是我在谷歌上没有找到如何仅序列化更改的对象,并且每次序列化整个列表似乎非常浪费。

  2. 使用 SQLite - 这是我目前正在使用的,这里最糟糕的问题是添加 \ 更改对象的属性非常复杂,而且不太优雅。

有什么方法可以让我享受 NSKeyedArchiver 的便利,但只序列化更改的对象?

0 投票
2 回答
1533 浏览

objective-c - 你如何使用 NSKeyedArchiver 保存数据?

嗨,我正在尝试从我创建的类中保存一个对象。它被称为 shot 并包含我希望保存的 5 个变量。这是 .h 文件---它切断了 NSCoding 和 NSMutableCopying 协议以及我的导入,但它们在那里。

当我使用这些方法时,我似乎无法保存我的数据

我已将保存和加载方法设置为按钮,但我的数据仍然无法保存。请帮忙!!!

0 投票
1 回答
639 浏览

iphone - 我在 nskeyedarchiver 中使用什么文件扩展名

我正在编写一个使用 NSKeyedArchiver 来保存其数据的应用程序。我的文件应该是 ishotTrack.plist 还是 ishotTrack.arch?

0 投票
2 回答
1333 浏览

iphone - 使用单例并将其归档

我有一堂课,我想在整个应用程序中保持持久设置。这个类定义为:

并实现为:

应用程序委托 applicationWillTerminate 方法:

我对存档/取消存档的概念很陌生。问题是我无法从数据文件中读回。我收到以下错误:

-[NSKeyedUnarchiver initForReadingWithData:]: 数据为 NULL

谁能解释我做错了什么?或者也许是保存/恢复持久数据的更好方法。我已经查看了 NSUserDefaults 类,但我认为这不适合我的情况……我不是要保存用户首选项。

0 投票
2 回答
1662 浏览

ios - iOS - 编码/解码枚举 - 重新启动后访问时崩溃

我究竟做错了什么?我是否正确编码/解码枚举类型?

游戏设置界面:

游戏设置实现:

保存设置:

当我重新启动应用程序并尝试访问游戏设置时出现崩溃(程序接收信号:“EXC_BAD_ACCESS”):

为什么重新启动后无法访问 GameSettings 单例?

0 投票
4 回答
5731 浏览

iphone - 需要归档 CLLocation 数据

我有一组CLLocation要存档的数据。应该使用NSUserDefaults系统吗?否则,如何最好地归档CLLocation数据?

0 投票
0 回答
689 浏览

nskeyedarchiver - 我在使用循环引用取消归档 NSMutableSet 时遇到问题

我在我的 iPhone (iOS 4.3) 应用程序中取消归档 NSMutableSet 对象时遇到问题。

我有一个 UIImageView 的子视图,其中包含 NSMutableSet 类型的 ivar。我在标题中定义了 NSMutableSet(并在实现中合成了它):

该集合包含对 MyView 类型的零个或多个对象的引用。由于 group 是 MyView 的一个属性,因此对非 nil 组成员(MyView 对象)的引用是循环的。

我像这样编码这个视图:

NSLog 显示正在归档的健康组对象。但是当我取消编码时,我得到一个 NSException:

第一次看到这个错误时,我收到了一条相当详细的错误消息:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“ * -[NSCFSet count]: method sent to an uninitialized mutable set object”

但是,当我重现该问题时,我得到的信息要少得多:在抛出“NSException”实例后调用终止

使用以下命令创建存档:

并用这个打开:

感谢您对此的任何帮助。

- 富有的