问题标签 [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.
iphone - 通过将 UIImage 文件转换为 NSData 来保存带有 NSCoding 的 UIImage 文件
我正在尝试将 UIImage 保存ABRecordRef
在我自己的NSCoding
符合类中。据我现在所知,这UIImage
不NSCoding
符合要求,因此我尝试使用以下解决方法NSData
:
由于某种原因,当我尝试保存此类的实例时,程序会立即崩溃。我做错了什么,或者做得更好:我怎样才能完成我想要的?谢谢!
iphone - 具有自定义对象无效属性的 NSMutableArray
我在 NSUserDefault 中保存了一个带有自定义对象的 nsmutable 数组。但是,当我检索对象时,我得到了一个包含对象的数组,但是当我尝试遍历对象时,应用程序崩溃并且在本地调试器中我变得无效
CFStringRef 和日志 -[消息标题]:无法识别的选择器发送到实例 0x187900。
我的自定义对象遵循 NSCoding 协议,如果我打印出数组,则以十六进制显示对象和内存分配。
我的讯息。我已将名称更改为用于测试的属性:
我保存并尝试检索对象的方法:
-(void)saveToFile:(NSMutableArray *)incoming{
}
ios - nskeyedarchiver 在 OS X 和 iOS 之间的兼容性
如果我在桌面可可应用程序和 iOS 应用程序之间共享一个实现 NSCoding 协议的类,我是否也能够在这两个应用程序之间共享通过归档对象创建的数据文件?
objective-c - NSCoder 和/或 NSKeyedUnarchiver 如何处理同一对象的多个解码?
我想知道NSCoder
下次解码时如何处理由多个对象共享和编码的对象。它会复制该对象的两个副本,还是将一个对象解码并在解码它的所有其他对象之间共享?
我在下面提供了一个类似这种情况的小例子。
例子:
- 应用程序启动
- 对象 A 和对象 B 将对象 C 设置为它们的委托
- 应用程序收到终止通知。
- 对象 A 和对象 B对它们自己和它们的所有对象(包括它们的委托)进行编码
- 应用程序关闭并重新启动
- 对象 A 和对象 B解码自己和它们的所有对象(包括它们的委托)
在第 6 步之后,对象 A 和对象 B 会共享相同的解码对象,还是它们各自拥有自己的副本?
iphone - 当视图包含带有自定义图像的 UIButton 时,UIViewController encodeWithCoder 失败
基本上,我的问题正是它在标题中所说的。当我尝试对 的子类进行编码时UIViewController
,调用[super encodeWithCoder]
会给出NSInvalidArgumentException
. 具体来说,我得到-[UIImage encodeWithCoder:]: unrecognized selector sent to instance XxXXXXXX
.
视图中唯一的图像图像位于 a 上UIButton
,它也应该符合 NSCoding,并且堆栈跟踪包括对[UIBUtton encodeWithCoder]
. 按钮是用编程方式创建的[UIButton buttonWithType:UIButtonTypeCustom]
,图像是用 设置的setImage: forState:
。我真的不知道这里发生了什么。我是否遗漏了一些明显的东西,或者UIButton
只是不符合NSCoding
?
objective-c - NSKeyedArchiver 返回意外的类?
我有一个扩展的自定义类NSString
。我正在尝试使用NSKeyedArchiver
. 该类覆盖...Coder
方法:
但是当我尝试实际运行归档/取消归档时:
输出不是我所期望的:
ios - 在 iOS5 上取消归档 iOS4 数据不起作用
我NSDictionary
在 iOS 4 上使用NSKeyedArchiver
存档了 ,但在 iOS 5 上使用 取消存档
抛出此异常
请注意,在 iOS 4 上取消归档工作正常。 plutil -lint
报告存档没问题。在这里,供参考:
ios - 是否可以使用 encodeObject 归档 UIPickerView?
我想恢复我的视图状态,我的视图有一个UIPickerView
.
UIPickerView
在我看来它具有图形组件,即背景轮图像。我知道UIImage
不能存档。任何带有图像的东西,例如UIImageView
,您必须先将图像设置为,nil
然后才能对其进行编码。
但是,UIPickerView
是NSCoding
合规的。这意味着encodeObject
并且decodeObject
应该起作用。
他们没有。我的意思是,它们不会导致任何错误。但解码后,你得到的UIPickerView
没有任何图像。看起来不太好!
这是之前和之后的镜头,只是为了证明我不会生气:
前
后
现在,我知道我可以简单地存储当前用户选择,并通过调用选择器的selectRow
方法重新创建视图。但实际上,我很好奇。UIPickerView
NSCoding
如果它不是真的而且你不能做任何进一步的事情来恢复背景轮图像,为什么它是合规的?
iphone - Using NSCoding on a subclass of custom class
I am using NSCoding to archive/unarchive a custom class as a method of data persistence. It works fine if the object is a subclass of NSObject, but I also have objects that are subclasses of custom objects. Do I need to change the initWithCoder: method as well as encodeWithCoder? Right now, the properties that are specific to the subclass encode/decode fine, but properties the subclass inherit from the superclass do not. Any thoughts? Here is the basic structure:
and the subclass:
objective-c - 使用自定义初始化的 NSCoding
我有一个名为“Defense”的类,其自定义初始化方法如下:
现在我正在使我的类NSCoding
兼容,这需要以下两种方法:
当我通常分配一个“防御”的实例时,我的代码如下:
当我想恢复防御对象的保存实例时,我编码为
但是在上面的代码中我不能传递对象非常需要的“type”和“mapref”参数initialize
......
Defense 类派生自CCSprite
并且由于CCSprite
不符合,因此可以从我的方法NSCoding
调用。但我需要参数来确定要传递给initWithFile 的文件名。(self = [super initWithFile:fileName])
initWithCoder
type
ccsprite's
那么在这种情况下我会怎么做呢?我应该改变我的班级设计吗?如果是,如何?
任何好的想法/建议都非常感谢...... :)