问题标签 [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 投票
1 回答
2237 浏览

objective-c - 使用 NSKeyedArchiver/ NSKeyedUnarchiver 存储 NSObject

我有一个类对象,例如;

BookEntity.h

BookEntity.m

我为这个类分配了一些值,

所以我想使用 NSKeyedArchiver 存储这个类并使用 NSKeyedUnarchiver 恢复。

我写入文件,但是当我检索此文件时,实体具有任何价值。

做这个的最好方式是什么?

谢谢。

0 投票
1 回答
105 浏览

arrays - 如何解码 rootObject

我有一个自定义类,我正在尝试在我的类中保存一个数组。在 encodeWithCoder 方法中,我使用 encodeRootObject:theShotArray 来保存数据。我应该为 initWithCoder 方法使用什么。似乎没有 decodeRootObject 方法。有没有更好的方法来保存数组。

0 投票
1 回答
11778 浏览

xcode - 如何使用 NSKeyedArchiver 对自定义类进行编码和解码

我有一个希望保存和加载的自定义类。该类包含一个 NSDate、一个 NSString 和一个 NSNumber。我已经在 .h 文件中实现了 NSCoding 协议。这是我到目前为止的代码。theDate 是一个 NSDate。theName 是 NSString。homeAway 是 NSNumber。

我正在使用下面的代码来加载我的自定义对象。当我在调试器中使用 print-object 时,只有 homeAway 显示为实际对象。theDate 和 theName 说 0x4e4f150 似乎没有指向有效的对象。

我使用以下代码保存数据:

我用它来调用我的类来创建一个新游戏(我试图保存的自定义类)。代码到 NSDate *aDate = [gameDate date]; 无关紧要。

}

从那个方法我调用 newGame 方法,它是

为什么我的对象无法保存?复制我的对象与它有关吗?我确实在“exc bad access”的注释行上收到错误。请帮忙...

0 投票
2 回答
77 浏览

iphone - 首选文件扩展名

我正在使用 NSKeyedArchiver 进行保存。我的文件名的文件扩展名应该是什么?

0 投票
1 回答
2034 浏览

iphone - 从 NSKeyedArchvier 中删除数据

我正在使用 NSKeyedArchiver 存储数据。当用户退出我的应用程序时,我想清除我存储的所有数据。我该怎么做呢?似乎没有[NSKeyedUnarchiver unarchiveObjectWithFile:]删除该文件。

谢谢!

0 投票
1 回答
1598 浏览

objective-c - Objective C - NSKeyedArchiver 或 NSUnKeyedArchiver 帮助

我一直在寻找一个关于编码一组整数和字符串的好教程,将它们包装在一个数组中,然后使用 NSKeyed 或 NSUnkeyed 存档器将其存档(最终然后放入一个 NSData 对象并通过 Wi-菲)。

例如,我有 3 个整数和 3 个字符串称为

整数 1 整数 2 整数 3 字符串 1 字符串 2 字符串 3

谁能给我提供示例代码,或者一个包含如何做到这一点的示例的好教程的链接?包括我需要对所有对象进行编码的方法,因为我仍然不确定在尝试将这些编码项目包装到数组中然后存档它们时如何实现这一点。

我已经阅读了苹果网站上的 Archives and Serializations Programming Guide ,当放在试图将这一切包装在一个数组中然后存档的上下文中,它并不是很有启发性。

如果我也不需要传输字符串,我很想创建一个 CFSwappedFloat32 的 ala GKRocket 数据包,但字符串是非常完整的。

谢谢

0 投票
2 回答
952 浏览

iphone - 当我使用 NSKeyedArchivers / NSKeyedUnarchivers 时无法弄清楚为什么我的应用程序崩溃

我正在开发我的第一个 iphone 'Diary' 应用程序,它使用包含 NSString 标题、NSString 文本和 NSDate creationDate 的自定义 'Entry' 对象。当我尝试归档一个 NSMutableArray 的 Entry 对象,然后在下次加载视图时检索它们时,应用程序崩溃了。我已经浏览了一堆使用 NSKeyedArchivers 的示例代码和示例,但仍然无法弄清楚为什么会发生这种情况。我猜保存条目的数组的初始化存在问题,但不确定......

这是代码,也许你能找到我一直在监督的东西……”

非常感谢。

0 投票
1 回答
1114 浏览

objective-c - NSKeyedArchiver 不保存对象的所有属性

我遇到了一个问题,我正在保存一个具有颜色和标签属性的“节点”数组(下面的标题)。当它保存为 - (void)saveDataToDiskWithPath:(NSURL*)path 时,日志显示这些属性存在。当我稍后从保存的文件中再次加载数组时,节点的框架仍然存在,但是数组中的每个节点都丢失了它的标签和颜色......有什么想法吗?我可能做错了什么?也许我只是累了,以后一切都会说得通的……

节点.h:

保存方法:

加载方法:

0 投票
1 回答
1290 浏览

xcode - NSMutableArray 上的摘要无效

我需要一些关于如何解决这个问题的专家建议。我正在为 iPad 的新应用程序做一些粗略的测试。

通过加载在另一个应用程序中创建的 plist 文件,我在视图控制器的 viewDidLoad 中创建了一个 NSMutableArray (ballPath)(它在我的 .h 文件中声明)。

该数组现在包含许多 CGPoints(由其他应用程序存储为 NSValues 并存档)。

在此处输入图像描述

然后我绘制路径(仍在我的 viewDidLoad 中),它工作正常,所以路径应该工作正常。

当我稍后想要读取数组作为对加速度变化的响应时,我得到一个 EXC_BAD_ACCESS。当我调试并查看我的数组时,它看起来像这样:

在此处输入图像描述

我测试并用这个替换加载的数组(也在 viewDidLoad 中):

然后它工作得很好!

在此处输入图像描述

我在这里想念什么???

我在 Xcode 4.0.2 上,我的目标是 iOS 4.3。

0 投票
3 回答
4500 浏览

objective-c - NSData 从 NSKeyedArchiver 到 NSString

我正在尝试将从 NSKeyedArchiver 生成的 NSData 转换为 NSString,以便我可以将其传递并最终将其转换回 NSData。我必须将其作为字符串传递(我正在使用 three20 URL 传递)。我经历了各种编码、UTF8、ASCII 等,但无法正常工作。NSKeyedArchiver 说 NSData 被格式化为一个属性列表:NSPropertyListBinaryFormat_v1_0。

有谁知道如何将此 NSData 转换为 String 并再次返回?字符串的大小不是问题。

谢谢