gpt4 book ai didi

ios - 自定义对象到 NSMutableDictionary

转载 作者:行者123 更新时间:2023-11-28 21:48:55 25 4
gpt4 key购买 nike

我想向 NSDictionary 添加自定义对象。它应该存储三个变量:两个字符串和一个 bool 值。

我在网上阅读并发现 NSCoder 是一种方式,但我不喜欢这个结果。通过使用 [dictionary setObject:[NSKeyedArchiver archivedDataWithRootObject:customObject]] 我最终得到 NSData 信息而不是人类可读的文本。我的目标是让它对人眼可读。我不想将对象编码成二进制数据。

为了让它更复杂一点,我想在 NSArray 中添加我的对象。出于测试目的,我尝试将 NSString 添加到 NSArray 并调用 [NSDictionary dictionaryWithObject:array forKey:@"myKey"]。结果是完美的。它对人类是可读的。我想添加我的自定义对象而不是 NSString。

期望的结果应该是这样的:

{
TextStrokeColor = "UIDeviceWhiteColorSpace 0.5 1";
TextStrokeWidth = 0;
MyObjects = (
MyCustomObject = {
name = "name";
boooool = 0;
description = "";
}
, ... other objects );
}

我应该使用什么?我真的不明白 NSCoder、NSCoding、NSCopying 的区别和用途。

稍后我需要能够在磁盘上编辑文本文件。通过二进制表示我不能。但似乎没有直接的方法。

最佳答案

您可以简单地使用数组、字典、字符串、数字、日期(任何可以写入 plist 或 JSON 的内容)。

问题是这是否仅在“归档”期间完成,或者您的内存表示是否也是数组和字典。您还可以创建一个自定义类,它可以在内部使用字典来存储数据并从该字典中存档/重新加载,或者自定义类是具有属性的标准类,并在存档或重新加载时即时创建字典。

请注意,当使用键控存档器时,它可以支持将 outputFormat 设置为 NSPropertyListXMLFormat_v1_0 用于某些用例,因此一旦您的自定义类实现了对 plist 数据类型的存档,您可以轻松地将容器存档到 plist(JSON 需要您做更多的工作才能将数据整理到真正的容器中)。

关于ios - 自定义对象到 NSMutableDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29052995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com