草庐IT

nskeyedunarchiver

全部标签

java - Objective-C : Serializing/Archiving issues

我是一名Android开发者,最近开始使用IOS。在我所有的Android项目中,我都有一个执行以下操作的IO类:publicstaticObjectload(Stringfname,Contextcont){FileInputStreamfis=cont.openFileInput(fname);ObjectInputStreamois=newObjectInputStream(fis);ObjectloadedObject=ois.readObject();ois.close();fis.close();Father.print("Loadedfromfile"+fname+"su

ios - NSCoding NSKeyedUnarchiver unarchiveObjectWithFile : returning null

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

ios - NSKeyedUnarchiver SIGBUS BUS_ADRALN 崩溃

我使用以下方法取消存档NSFileWrapper中的数据,该方法通常效果很好:-(id)decodeObjectFromWrapperWithPreferredFilename:(NSString*)p{NSFileWrapper*wrapper=[self.fileWrapper.fileWrappersobjectForKey:p];if(!wrapper){NSLog(@"Unexpectederror:Couldn'tfind%@infilewrapper!",p);returnnil;}NSData*data=[wrapperregularFileContents];NSKe

ios - NSKeyedUnarchiver 不从 CoreData 数据属性解码 CLPlacemark 对象

我有一个带有地标数据属性的核心数据实体,我试图在其中存储CLPlacemark对象。@interfaceZJPlace:NSManagedObject...@property(nonatomic,retain)NSData*placemark;我正在像这样对对象进行编码:place.placemark=[NSKeyedArchiverarchivedDataWithRootObject:self.placemark];像这样解码:self.placemark=[NSKeyedUnarchiverunarchiveObjectWithData:place.placemark];在解码时,

ios - 是否可以确定是否会捕获 Objective-C 异常?

我在iOS(和OSX)中遇到了一种情况,NSKeyedUnarchiver的异常会导致纯二进制第三方框架在尝试取消存档损坏的存档时使我的应用程序崩溃(当部署在现场时),因此强制用户删除并重新安装该应用程序。这种情况不会经常发生,但我希望该数字为零。我无法通过包装NSKeyedUnarchiver调用来解决问题,这既是因为我没有源代码,也是因为这些调用不是我的代码所做的任何事情的直接结果;它们在任意时间在任意后台线程上运行。我目前正在调整NSKeyedUnarchiver类,以便读取损坏的存档返回nil(就像文件不存在一样)而不是抛出异常,但我不确定这些第三方框架是否可能正确地做事(使用

ios - NSKeyedArchiver 继承自 NSCoder 为什么会存在 NSKeyedUnarchiver?

为了提供一些背景信息,我是iOS/Objective-C的新手,具有网络开发(Ruby/JS/C#)背景。我了解这些类是如何工作的,但我不明白为什么最初的实现者编写了这两个类(NSKeyedArchiver和NSKeyedUnarchiver),而不是将编码和解码逻辑合并到一个单类。阅读AppledocumentationfortheabstractclassNSCoderNSCoder具有编码和解码的方法。我唯一能想到的是代码很长,所以最初的实现者将它分成了2部分......在我看来,只使用一个类对开发人员来说更方便,但也许我'我错过了一些关于这个的细微差别。那么这有什么历史原因吗?

iOS NSKeyedUnarchiver归档和读取

使用NSKeyedUnarchiver归档数据到本地,很多时候保存的并不是基础数据类型,更多是自己定义的Model。有时会碰到归档或者读取的内容跟自己保存的数据类型不匹配。现在按照思路一步一步解决:1.先保存文件保存的数据的类型 #importNS_ASSUME_NONNULL_BEGIN@interfaceHSFileModel:NSObject@property(nonatomic,strong)NSURL*fileUrl;//文件链接@property(nonatomic,copy)NSString*fileName;//文件名@end@property(nonatomic,strong

ios - 使用Xcode 4.3.x构建适用于iOS 3.0的通用应用程序-NSKeyedUnarchiver异常

尝试使用Xcode4.3.2为iOS3.0构建和调试通用应用程序。我从NSKeyedUnarchiver得到一个NSException。似乎与无法读取主.xib文件有关。我已经看到了:iOSandunarchivingxibfiles-但是,在那种情况下,尚不清楚应用程序是否通用(其解决方案不起作用)(注意:他们的解决方案不起作用,因为他们使用的是Xcode4.2,而不是4.3)。错误输出:2000-01-0111:00:39.-19myApp[664:207]***Terminatingappduetouncaughtexception'NSInvalidArgumentExcept

iphone - NSKeyedUnarchiver - 如何防止崩溃

我想这很明显,但我对加载数据有疑问。如果有一个名为library.dat的文件,它存储有关应用程序中对象的所有类型的信息。它设置得很好(就initWithCoder和encodeWithCoder方法等而言),但我只是想知道如果library.dat被破坏会发生什么。我自己稍微破坏了它,然后应用程序就会崩溃。有什么办法可以防止崩溃吗?我可以在加载文件之前对其进行测试吗?这是可能非常致命的一点:-(void)loadLibraryDat{NSLog(@"loadLibraryDat...");NSString*filePath=[[selfdocumentsDirectory]strin

arrays - iOS12 中的 NSKeyedUnarchiver 更改 - 如何取消存档字符串数组

Foundation从iOS11.4到iOS12有一些变化。遗憾的是,我找不到关于此主题的任何有用文档。在iOS12之前,我有这段代码完美地工作以从某个文件路径读取带有字符串的数组:ifletmyList:Array=NSKeyedUnarchiver.unarchiveObject(withFile:filePath)as?Array{//...}正如我发现的那样,我应该使用iOS12中的一些新方法并且我尝试了这个(当然是在do-catch-structure中,并且在获取数据对象之后):letmyList:Array=tryNSKeyedUnarchiver.unarchivedO