jjzjj

NSKeyedUnarchiver

全部标签

ios - Swift iOS ARKit 从文件加载 ARWorldMap 数据 NSKeyedUnarchiver NSKeyedArchiver

我正在尝试保存然后将ARKitARWorldMap加载到本地文件。我似乎有储蓄工作正常:funcsaveWorldMap(){ARView?.session.getCurrentWorldMap{[unownedself]worldMap,erroringuardletmap=worldMapelse{return}do{letdata=tryNSKeyedArchiver.archivedData(withRootObject:map,requiringSecureCoding:true)do{leturl:URL=URL(fileURLWithPath:self.worldMapF

swift - 从文件名加载 SpriteKit 关卡

对于我正在创建的游戏,我希望能够创建许多可以轻松加载的自定义关卡。每个级别都应该有一个.sks接口(interface)文件和它自己的SKScene子类.swift文件。现在,这是有效的:extensionSKScene{classfuncunarchiveFromFile(file:NSString,theClass:AnyClass!)->SKScene?{ifletpath=NSBundle.mainBundle().pathForResource(file,ofType:"sks"){varsceneData=NSData.dataWithContentsOfFile(path

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

我在更新我的应用程序后遇到了一个我不明白的错误。我在应用程序商店中已有一个应用程序。我将一些特定于应用程序的数据存档并存储在应用程序支持目录内的文件中。每次应用程序启动并发送到后台时,我都在读取和存储数据。到目前为止一切都很好。现在我发布了应用程序的更新。更新后,当我启动应用程序并尝试取消归档数据时,它崩溃并出现以下异常。-[NSKeyedUnarchiverdecodeObjectForKey:]:cannotdecodeobjectofclass(ProjectName.ProjectFile)forkey(root);theclassmaybedefinedinsourcecod

ios - NSKeyedUnarchiver unarchiveObjectWithData 返回零

我有一个使用NSCoder/NSKeyedArchiver和NSKeyedUnarchiver进行序列化和反序列化的类。我有单元测试,旨在检查我对序列化格式(不是简单的存档,而是包含存档)中的各种错误的处理。但是,自从我升级到Swift2/iOS9后,测试显示了一些异常行为。以前,无效文件的测试失败,因为反序列化无效文件会引发Objective-C异常,正如文档所述,由于Swift无法捕获它们而导致程序崩溃。这很好,我打算在将来的某个时候修复测试。现在,测试通过了。当输入随机或确定性垃圾时,我从unarchiveObjectWithData接收到nil而不是异常。我已经检查了此方法的文

ios - 添加了自定义框架,现在 Swift 无法解压数据

我有一个非常简单的Swift应用程序,它有一个名为DemoNote的模型类。DemoNote实例数组通过键控归档读取/写入。当DemoNote包含在应用程序中时,这工作正常。但随后我将DemoNote.swift移至名为DemoSharedCode的新自定义框架。除了确保Xcode在应用程序目标中使用框架外,我还确保将DemoNote及其变量和方法标记为public,以便它们在框架外可见将importDemoSharedCode添加到任何想要使用DemoNote的类中所以现在编译器很高兴。但在运行时,解档失败并出现此错误:2015-02-1712:12:53.417DemoNotesS

swift - NSKeyedUnarchiver 不适用于 Swift 3

我有以下代码用于在我的Mac应用程序中取消存档文件:functryOpen(_filePath:String)throws->NSArray{if#available(OSX10.11,*){do{ifletdata=try?Data(contentsOf:URL(fileURLWithPath:filePath)){letarray=tryNSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data)as!NSArrayreturnarray}else{throwNSError(domain:NSExceptionName.invali

ios - 无法为键(NS.object.0)解码 Employee 类的对象;该类可能在源代码或未链接的库中定义

我试图通过序列化数组将iPhone的“员工”对象数组传递给AppleWatch:NSData*encodedObject=[NSKeyedArchiverarchivedDataWithRootObject:employees];并将其反序列化为在Watch端:NSMutableArray*employees=[NSKeyedUnarchiverunarchiveObjectWithData:encodedObject];这是“员工”类:@interfaceEmployee:NSManagedObject@property(nonatomic,retain)NSNumber*emplo

ios - 无法为键(NS.object.0)解码 Employee 类的对象;该类可能在源代码或未链接的库中定义

我试图通过序列化数组将iPhone的“员工”对象数组传递给AppleWatch:NSData*encodedObject=[NSKeyedArchiverarchivedDataWithRootObject:employees];并将其反序列化为在Watch端:NSMutableArray*employees=[NSKeyedUnarchiverunarchiveObjectWithData:encodedObject];这是“员工”类:@interfaceEmployee:NSManagedObject@property(nonatomic,retain)NSNumber*emplo

ios - [NSKeyedUnarchiver initForReadingWithData :]: data is NULL

在我保存到NSUserDefaults的设置中,有一个非强制对象,它没有任何开箱即用的默认值。在用户为此对象设置值之前,当我从NSUserDefaults取消存档时,应用程序会生成错误“[NSKeyedUnarchiverinitForReadingWithData:]:dataisNULL”。我忽略了这个错误,否则应用程序运行正常。是否有避免这种情况的最佳做法,这是否令人担心? 最佳答案 我不确定您要取消存档的确切内容,但如果您可以先查看key,然后再取消存档,您可以这样做:if([[[NSUserDefaultsstandard

ios - [NSKeyedUnarchiver initForReadingWithData :]: data is NULL

在我保存到NSUserDefaults的设置中,有一个非强制对象,它没有任何开箱即用的默认值。在用户为此对象设置值之前,当我从NSUserDefaults取消存档时,应用程序会生成错误“[NSKeyedUnarchiverinitForReadingWithData:]:dataisNULL”。我忽略了这个错误,否则应用程序运行正常。是否有避免这种情况的最佳做法,这是否令人担心? 最佳答案 我不确定您要取消存档的确切内容,但如果您可以先查看key,然后再取消存档,您可以这样做:if([[[NSUserDefaultsstandard