jjzjj

NSKeyedArchiver

全部标签

iphone - 使用现有(普通)模型将核心数据添加到 iPhone 应用程序

我有一个相当复杂的iPhone应用程序,它依赖API从服务器获取数据并将其显示给用户。我有大约5个模型类在整个应用程序中使用-它们只是扩展NSObject。我想为模型添加一些持久性,以允许即使设备处于离线状态也可以使用应用程序的某些部分-它实际上基本上只是美化了缓存。我只希望保留模型的某些实例-例如,用户已添加书签的项目-而其他实例不应该保留,例如数百个搜索结果。CoreData是正确的解决方案吗?我能看到的困难是:我将不得不在整个项目中更改实例化模型对象的方式。我必须将它们初始化为上下文的一部分,如果它们实际上来自外部API,则这不一定有意义。我需要注意不要保留我不想要的实例。这似乎

iphone - NSKeyedUnarchiver - 如何防止崩溃

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

ios - 您可以为 NSKeyedArchiver archivedDataWithRootObject 禁用 "mangled runtime name"崩溃/警告吗?

升级到Xcode9后,当我们尝试使用[NSKeyedArchiverarchivedDataWithRootObject:mockObject]编码模拟对象时,我们会收到崩溃/警告(看起来像警告但行为像崩溃):AttemptingtoarchiveSwiftclass'Foo.MockUser'withmangledruntimename'_TtCC13Foo27Bar8MockUser'.Theruntimenameforthisclassisunstableandmaychangeinthefuture,leadingtonon-decodabledata.有什么方法可以禁用或解决

iOS - 保存登录用户信息

所以在我的应用程序中,我有一个主视图Controller,它检查是否NSUserDefaults.standardUserDefaults().objectForKey("userLoggedIn")==nil。如果它是nil,它会显示身份验证ViewController(登录、注册等)。否则,应用程序将被初始化。我的问题是-我应该存储用户信息吗?我不是在谈论安全的东西,比如我会使用钥匙串(keychain)的密码或APIkey,我只是在谈论用户的ID、名称、头像等(在用户模型中表示)。将其存储在本地是否是一种好习惯,这样我就不必每次都为它访问服务器(因为该应用程序依赖于此信息),如果

ios - 如何防止 TableView 单元格重复? swift

所以我正在构建一个笔记应用程序并尝试了所有方法但无法解决这个问题。我有3个UIViewController。当您单击第一个UIViewController上的按钮时,它会将您带到第三个按钮,它由一个UITextView、UITextField和一个StaticUILabel会更新一些信息。当您填写这些字段并点击后退按钮时,它会将您带到第二个ViewController,这是一个使用此信息更新的表格。问题是:当我点击UITableViewCell时,它会将信息加载回第三个ViewController,以便用户可以编辑他的笔记,但是当我返回UITableView时>它创建了一个全新的单元格

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

ios - NSKeyedArchiver 返回 nil Swift 4.2

letlessons=Lessons(definition:"testo",photo:url)SaveUtil.saveLessons(lessons:lessons!)letx=SaveUtil.loadLessons()所以一切都编译并运行,但x为零....我正在尝试使此ios12/swift4.2兼容,但不知道缺少什么。谢谢!classSaveUtil{staticfuncsaveLessons(lessons:Lessons){letdata=try!NSKeyedArchiver.archivedData(withRootObject:lessons,requiringSe

ios - Swift - 数组到数据并返回到字符串

我想把字符串数组转成base64再转回字符串我尝试以下操作letarray=[[1,2,"preved"],[3,4,"hola"],[5,6,"poka"]]letencodedData=NSKeyedArchiver.archivedData(withRootObject:array)letbase64String=encodedData.base64EncodedString()letdata=Data(base64Encoded:base64String)letdecodedData=NSString(data:data!,encoding:String.Encoding.ut

IOS 编辑器错误。 archivedData 重命名

请帮帮我!我陷入了一个循环,找不到出路。我正在尝试为工作学习IOS编程,所以我想我会从他们的教程应用程序Meallist应用程序开始。我在你应该开始保存持久数据的部分,现在编辑器让我陷入了一个永无止境的循环。我有一行代码...letisSuccessfulSave=NSKeyedArchiver.archiveRootObject(meals,toFile:Meal.ArchiveURL.path)这给了我一个警告说...'archiveRootObject(_:toFile:)'wasdeprecatediniOS12.0:Use+archivedDataWithRootObject

ios - NSKeyedUnarchiver unarchiveObjectWithData 返回零

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