jjzjj

nscoding

全部标签

ios - NSCoding NSKeyedUnarchiver unarchiveObjectWithFile : returning null

我正在尝试使用NSCoding从我的应用程序中保存一些值。我能够保存该值但无法检索它。这是我声明协议(protocol)的地方:@interfaceAddReminderEventViewController:UIViewController这是我遵守协议(protocol)的地方:-(void)encodeWithCoder:(NSCoder*)enCoder{[enCoderencodeObject:self.eventRepeatDurationDateforKey:kEventRepeatDuration];[enCoderencodeObject:self.eventIDsM

ios - 将 NSObject 的所有属性编码为 NSData

所以我是iOS的新手,但我对一项简单任务的复杂性感到有点困惑。我试图在NSUserDefaults中存储名为“Vehicle”的自定义NSObject类。显然,这是做不到的,所以我需要先将它编码为NSDATA。很好。但这意味着我需要在解码中对类的每个属性进行编码......在我的Vehicle类中...-(void)encodeWithCoder:(NSCoder*)coder{[coderencodeInt:xforKey:@"x"];[coderencodeInt:yforKey:@"y"];[coderencodeInt:directionforKey:@"direction"]

iphone - 使用 NSCoding 在 App 中序列化的数据是否安全?

事情是这样的:有一些敏感数据使用NSCoding序列化存储在设备中。我想知道是否有其他人可以找到key并取消归档序列化目标文件以获取数据的方法?感谢您的帮助。 最佳答案 仅使用NSCoding存储敏感数据是不安全的。NSCoded值未以任何方式加密-您甚至不需要知道key-您可以直接查看存储的文件并轻松查看值(如果它们是字符串)。敏感数据(特别是提供对后端网络服务或财务信息的特权访问的API访问key)理想情况下根本不应保留在客户端设备上。即使加密。在极端情况下,在他们的设备上安装了您的应用程序的黑帽可以发起中间人攻击并通过您的服务

ios - NSCoding:自定义类未归档,但类成员为空/无

我想保留一个NSDictionary,将自定义对象填充到磁盘:NSDictionary*menuList=[[NSMutableDictionaryalloc]initWithDictionary:xmlParser.items];//herethe"MenuList"`sObjectarefilledcorrectly//persistingthemtodisc:NSArray*paths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);NSString*directory=[p

ios - initWithCoder : function is not called from unarchiveObjectWithData:

我正在尝试取消存档特定类型的对象数组,但initWithCoder:函数没有在对象的类中执行。相反,我得到了错误:***Terminatingappduetouncaughtexception'NSInvalidArgumentException',reason:'-[SavedObjectinitWithCoder:]:unrecognizedselectorsenttoinstance0x9e85f34'现在,奇怪的是,调用了encodeWithCoder:并且我能够很好地将数据写入磁盘。然后,当尝试读回数据时,数据看起来与写入磁盘的数据完全一样。写入磁盘://arrayOfObj

ios - NSData 与归档

我想我只是不知道有什么区别,因为我不理解“黑匣子”,但是使用这些方法中的任何一种有什么区别?我应该什么时候使用NSDatawriteToFile:atomically:我应该什么时候使用[NSKeyedArchiverarchiveRootObject:toFile:]使用它们各自的优缺点是什么? 最佳答案 这两个API做不同的事情:NSData将“原始”字节写入文件。您可以通过假设您读回的字节位于正确的位置来恢复这些字节背后的结构。从某种意义上说,这类似于将曲奇刀应用于具有某种结构的作品,期望正确的作品出现在正确的位置。这种方法的

iOS:如何序列化一个不符合 NSCoding 的对象

我已经环顾四周并在这里找到了关闭答案:Correctwaytosave/serializecustomobjectsiniOS但这仅适用于用户创建的自定义对象。我的问题是序列化“SKProduct”,它是一个不符合NSCoding的派生类。具体来说,我遇到的确切错误:-[SKProductencodeWithCoder:]:unrecognizedselectorsenttoinstance0x4027160有没有人有类似的经历? 最佳答案 我会通过说可能有更简单的方法来作为这个答案的序言;但是在存档和取消存档期间类替换是您可以采用

ios - NSKeyedArchiver 使用什么字符编码或文件格式?

我目前正在调查一个据称通过NSKeyedArchiver存储的文件解档期间发生的崩溃。崩溃日志包含文件的前8个字节四部分(下面我只包括前2个)。FatalException:NSInvalidArgumentException***-[NSKeyedUnarchiverinitForReadingWithData:]:incomprehensiblearchive(0xffffffa6,0xffffff9e,...)我无法使用ASCII、Base64、UTF8或UTF16将这些字节解码成任何有用的东西。有谁知道NSKeyedArchiver使用哪种文件格式和/或字符编码,或者我如何将这

objective-c - 使用 NSCoding 编码对象或简单地将数据写入文件的优缺点

我很好奇在ObjectiveC中使用NSCoding对对象进行编码并将它们写入磁盘的优势可能优于简单地将持久性对象写入磁盘。在I/O或磁盘空间使用方面是否有性能提升? 最佳答案 好吧,大多数NSCoding实现都会正确处理对象图;也就是说,如果您对一个已经编码给编码器的成员对象进行编码,它将不会再次对其进行编码。解码将正确还原对象图(因此解码后的目标对象有多个入站引用)。您还可以获得所有内置的辅助编码函数(用于原始类型和对象)。除此之外,NSCoder只是持久性对象生成器,因此您最终会做类似的工作,只是没有Apple处理的烦恼和常见

ios - 如何将 NSCoding 用于结构的 c 数组? (MK折线)

我想将NSCoding支持添加到结构的c数组中。具体来说,这是针对MKPolyline的子类,即这是我必须处理的:@property(nonatomic,readonly)MKMapPoint*points;@property(nonatomic,readonly)NSUIntegerpointCount;+(MKPolyline*)polylineWithPoints:(MKMapPoint*)pointscount:(NSUInteger)count;Ifoundagoodansweronhowtoencodeaindividualstruct.例如NSValue*point=[N