问题标签 [nscoding]
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.
ios - 为什么 NSUserDefaults 无法在 iOS 中保存 NSMutableDictionary?
我想将一个NSMutableDictionary
对象保存在NSUserDefaults
. 中的键类型NSMutableDictionary
是NSString
,值类型是NSArray
,其中包含实现的对象列表NSCoding
。每个文档,NSString
并且NSArray
两者都符合NSCoding
.
我收到此错误:
[NSUserDefaults setObject: forKey:]: 尝试插入 NSCFDictionary 类的非属性值....
iphone - UIWebView 包括。内容编码/解码
我的目标:在应用程序中断时继续网络会话(例如,读取的传入短信)。
方法 A: 我尝试将 UIWebView 的内容存储在 NSUserDefaults 中,如下所示:
然后像这样恢复它:
但这不包括内容。
方法 B: 我还尝试通过以下方式获取 UIWebView 的内容:
然后存储它,并再次检索它,然后尝试在 UIWebView 中设置它:
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL
但 innerHTML javascript 并未返回全部内容。
有什么想法、建议等吗?
ios - 以编程方式加载使用 NSCoding 创建的对象模型
应用程序的 1.0 版有一个数据模型,它使用 NSKeyed(Un)Archiver 类保存/加载,因为所有模型类都遵循 NSCoding 协议。假设存在以下层次结构:
假设有以这种方式存储的遗留文件,但需要加载到应用程序的 2.0 版本以实现向后兼容性,使用以下较新的数据模型:
显然,有些数据会丢失,需要填写。例如。需要为之前存在的每个“居民数量”创建一个基本的“居住者”对象。我正在寻找的是一种以编程方式加载先前数据模型的方法,特别是如果我只有一个类/层次结构列表,而不是 .m/.h 文件本身。
所以我想做的是(假设我有一个文件 Houses.data,它是使用 Houses 数组序列化的):
有任何想法吗?
iphone - iPhone - 为什么文档说 UIImageView 符合 NSCoding?
理想情况下,一个符合 NSCoding 的类将使用 encodeWithCoder: 和 initWithCoder: (至少我直到最近才这么认为)按预期工作,而开发人员不必担心例程内部发生的事情(除非我对一个符合 NSCoding 的类的想法完全搞砸了!)
UIImageView 类是 NSCoding 兼容的。所以我不必担心如何使用 NSKeyedArchiver 和 NSKeyedUnarchiver 类对其进行序列化/反序列化。但是每次我尝试对 UIImageView 对象进行编码时,都会收到 UIImage 无法识别 encodeWithCoder: 方法的错误。
现在 UIImageView 在内部使用 UIImage 对象。但是编码不应该自己解决这个问题吗?
还是文档中指定的 NSCoding 合规性只是让用户知道他们可以实现 initWithCoder 和 encodeWithCoder 方法?
有人可以为我澄清一下吗!我彻底糊涂了!
iphone - 使用 NSKeyedArchiver 保存/加载 2D C 数组
像这样的马洛克
用它。在保存之前像这样转换为 NSdata
加载到 NSdata 然后转换回int**
使用此代码,它是否保存了*int
地址,然后当我加载数据时它不再指向正确的数据?或者我对
文档中描述的“字节顺序”有问题吗
如果是地址问题,我是否应该在保存转换*int
为 NSData 时放置一个 for 循环,然后保存所有这些并**int
使用另一个 for 循环/malloc 重新创建?
overriding - 覆盖类变量,或者至少是objective-c / cocoa中的变量类型
我的困境如下:
我有一个 UIImage 的自定义子类(我添加了一些序列化方法,即 initWithCoder、encodeWithCoder),我想将我的自定义子类作为变量应用到 UIImageView,或者至少是 UIImageView 的子类。
如您所知,UIImageView 有一个名为“image”的变量,它的类型为 UIImage。我想用我的子类覆盖这个变量。
我的目标是让 UIimageView 响应 archivedDataWithRootObject 而不会崩溃,并将 encodeWithCoder 消息发送到变量图像。如果有更聪明的方法可以到达那里,我愿意接受建议。
谢谢!
[编辑]我认为一种可能的途径是通过某种类型的铸造......但是:
当我在第二行执行后将鼠标悬停在 mlImage 上时,我可以看到它是 MLImage 类型的。但是,即使使用强制转换,在第三行执行 mlImage 之后也会变成 UIImage。我需要做什么才能将图像类型更改为 MLImage?[/编辑]
objective-c - CGPathRef 编码
是否可以对 CGPathRef 变量进行编码?我的意思是 CGPathRef 变量是否有类似 encodeObject:forKey 的方法?
iphone - 更长的密钥是否会使 NSKeyedArchiver 文件显着更长
当我encodeWithCoder:
为 iPhone 应用程序填写目标 c 类时,如果我对所有变量使用长键而不是短键,是否会使存档文件变大?
例如,如果我使用这样的非常长的键:
它会使存档文件比我使用这样的东西更长:
假设我有大量的整数和布尔值。
objective-c - 归档/取消归档导致 initForReadingWithData 无法理解的归档
我已经实现了保存applicationWillTerminate
和加载applicationWillFinishLoading
。有一个完整的对象树,都实现了NSCoding
协议,我检查了我输入的类型。
其中一个类还存储NSMutableData
到NSKeyedArchive
,我怀疑这可能会偶尔破坏取消归档。奇怪的是,有时它有效,有时则无效。我怀疑其中的某些内容NSMutableData
会破坏存档。
我在所有对象上使用 encodeObject,除了 bools 和 int 我使用正确的相应方法(encodeBool:forKey:
和encodeInt:forKey:
)
更清楚地说:代码确实有效,有时它能够重建一个相当完整的对象图,但并非总是如此。
我得到的错误信息是:
补充:失败的代码,它是NSMutableData
10+ MB
当我删除 self.data 编码和解码时,它似乎总是有效。它也因较小的 self.data 而失败。似乎不是大小而是内容问题?
当我将 nsmutabledata 写入文件时尝试打开文件,正确的列表编辑器显示错误:
plutil 也给出了这个错误:
objective-c - 编码一个 Objective-c 块?
是否可以使用 对 Objective-C 块进行编码NSKeyedArchiver
?
我不认为 Block 对象是NSCoding
兼容的,因此[coder encodeObject:block forKey:@"block"]
不起作用?
有任何想法吗?