草庐IT

NSKeyedUnarchiver

全部标签

ios - swift:nscoding decodeObject 始终为 nil

我在编写一个名为Packet的对象并通过Multipeer连接发送到另一端时获得了以下代码。但是,每当它尝试解码编码对象时,我都会收到以下错误。classPacket:NSObject,NSCoding{vartmp1:Double=0vartmp2:Double=0structPropertyKey{staticlettmp1Key="tmp1Key"staticlettmp2Key="tmp2Key"}init(tmp1:Double,tmp2:Double){self.tmp1=tmp1self.tmp2=tmp2super.init()}deinit{}requiredconv

ios - swift:nscoding decodeObject 始终为 nil

我在编写一个名为Packet的对象并通过Multipeer连接发送到另一端时获得了以下代码。但是,每当它尝试解码编码对象时,我都会收到以下错误。classPacket:NSObject,NSCoding{vartmp1:Double=0vartmp2:Double=0structPropertyKey{staticlettmp1Key="tmp1Key"staticlettmp2Key="tmp2Key"}init(tmp1:Double,tmp2:Double){self.tmp1=tmp1self.tmp2=tmp2super.init()}deinit{}requiredconv

ios - 当原始类不可用时如何解码对象?

我有一个iOS7应用程序,它将自定义对象作为文件保存到应用程序的iCloudDocs文件夹中。为此,我使用了NSCoding协议(protocol)。@interfacePerson:NSObject@property(copy,nonatomic)NSString*name@property(copy,nonatomic)NSString*lastName@end对象序列化在应用程序的iOS7版本中完美运行:initWithCoder和encodeWithCoder[NSKeyedArchiverarchivedDataWithRootObject:person]person=NSK

ios - 当原始类不可用时如何解码对象?

我有一个iOS7应用程序,它将自定义对象作为文件保存到应用程序的iCloudDocs文件夹中。为此,我使用了NSCoding协议(protocol)。@interfacePerson:NSObject@property(copy,nonatomic)NSString*name@property(copy,nonatomic)NSString*lastName@end对象序列化在应用程序的iOS7版本中完美运行:initWithCoder和encodeWithCoder[NSKeyedArchiverarchivedDataWithRootObject:person]person=NSK

ios - 发送到 NSKeyedUnarchiver 实例的无法识别的选择器

无法弄清楚为什么会不断抛出此错误:-[__NSCFStringbytes]:unrecognizedselectorsenttoinstance0xc3eb200对于这段代码:-(void)parser:(SBJsonStreamParser*)parserfoundObject:(NSDictionary*)dict{empty=NO;for(NSDictionary*valueDictionaryin[dictobjectForKey:@"Contacts"]){if([[valueDictionaryobjectForKey:@"Empty"]isEqualToString:@"

ios - NSKeyedUnarchiver 无法理解的存档

我遇到了一个奇怪的崩溃,大麦曾经发生过,我想知道这是否是由于读取了损坏的数据造成的?我发生了这个错误:-[NSKeyedUnarchiverinitForReadingWithData:]:incomprehensiblearchive>#BinaryImageNameAddressSymbol0CoreFoundation0x3357b2a3__exceptionPreprocess>1libobjc.A.dylib0x3b3df97fobjc_exception_throw>2CoreFoundation0x3357b1c5-[NSExceptioninitWithCoder:]>

ios - Unarchive UIImage 对象在 iOS 8 上使用 NSKeyedUnarchiver 返回 CGSizeZero 图像

我的代码在iOS7上运行:NSData*imageData=[NSKeyedArchiverarchivedDataWithRootObject:self.imageView.image];UIImage*imageCopy=[NSKeyedUnarchiverunarchiveObjectWithData:imageData];NSLog(@"%@",NSStringFromCGSize(imageCopy.size));但在iOS8上,imageCopy的大小始终为零。当我存档UIImageView时,也会发生同样的事情,未存档的imageView的图像大小为零。我发现在iOS7中

swift - NSKeyedArchiver 和 NSKeyedUnarchiver 取决于 bundli-ID

我的应用有2个目标:APP_TARGET1和APP_TARGET2我正在我的APP_TARGET1中序列化一个对象并将其存储(sqlite、文件)letdata:NSData=NSKeyedArchiver.archivedDataWithRootObject(maptheme);我正在使用APP_TARGET2读回blob/文件并尝试反序列化该对象。lettemp=NSKeyedUnarchiver.unarchiveObjectWithData(data!);->我收到以下错误,这表明序列化对象取决于bundli-ids?请有人告诉我,这不是真的,并且有一个变通方法可以让一个应用程

ios - NSKeyedUnarchiver.unarchiveTopLevelObjectWithData 在 Swift 4 中被废弃

我尝试实现AwesomeCache的一个分支,它在Swift4中实现了unarchiveTopLevelObjectWithData:ifletdata=NSData(contentsOfFile:path){do{possibleObject=tryNSKeyedUnarchiver.unarchiveTopLevelObjectWithData(dataasNSData)as?CacheObject}catch{}}但是Xcode现在生我的气了,并说:'unarchiveTopLevelObjectWithData'wasobsoletedinSwift4(Foundation.N

ios - NSKeyedUnarchiver decodeObjectForKey :]: cannot decode object of class

我有一个具有多个目标的应用程序(每个目标作为具有不同名称、包标识符等的单独应用程序供另一个客户端使用)。我有方法:fileprivatestaticfuncloadSessionFromKeychain()->UserSession?{ifletsessionData=KeychainWrapper.standard.data(forKey:UserSession.sessionDefaultsKey){print("sessionData:")print(sessionData.debugDescription)ifletsession=NSKeyedUnarchiver.unarc