问题标签 [nscoder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
890 浏览

ios - 在 Swift 1.2 中编码和解码枚举

enum在我的 Swift 类中有一个并声明了一个变量。我需要使用NSCoder. 关于这句话我应该使用很多问题rawValueEnum声明如下:

但是在 Swift 1.2 中没有这样的初始化器。如何在 Swift 1.2 和 Xcode 6.3 中做到这一点?

0 投票
2 回答
2033 浏览

ios - 使用编码器 aDecoder 推送 ViewController:NSCoder

我正在尝试使用以下方式推送视图控制器:

var vc2 = ViewController2()

self.navigationController?.pushViewController(vc2, animated: false)

但在我的第二个视图控制器中,我有:

Missing argument for parameter 'coder' in call但是我在第一个 ViewController 中得到了错误。第一个视图控制器的括号中是什么?

0 投票
2 回答
3468 浏览

ios - 在 Swift 的 NSUserDefaults 中保存自定义类对象

我试图将一些对象保存在数组中,但我的对象使用继承的属性但是当试图读取它说的对象时

结构是

以这种方式我使用此代码

这是类功能

-我的问题出在从 Servicio 继承的 Service1 中

0 投票
1 回答
241 浏览

objective-c - 重命名核心数据可转换

CoreData用来管理我的应用程序中的离线存储。离线存储的数据以自定义NSObject形式保存在xcdatamodel.

我在应用程序 ( v1.0 )中的当前版本正在存储Navigation该类。

我需要重命名Navigation该类以解决我的代码库的另一个目标中的一些名称空间问题。

在 2.0 版中,应用程序崩溃了,因为当我搜索CoreData商店时,NSKeyedUnarchiver由于缺少Navigation类而失败。

迁移当前CoreData商店以解决此问题的最佳方法是什么?

我试过这样的事情:

尽管我会很聪明地捕捉到异常并尝试仅获取 ObjectID 以删除我商店中的损坏数据。但它不起作用……</p>

0 投票
1 回答
1262 浏览

ios - 使用 NSCoder Swift 编码数组

我正在尝试实现 NSCoder,但目前面临一个顽固的问题。我的目标是通过 NSCoder 将字符串数组保存到本地文件中,并在下次打开应用程序时加载它。

这是我创建的类,但我不确定应该如何处理 init 和 encoder 函数:

}

此外,我如何在我的视图控制器中访问它?我应该在哪里声明保存 NSCoder 的路径?这还不够清楚。

期待任何建议。

谢谢你。

0 投票
2 回答
397 浏览

ios - NSKeyedUnarchiver 在后续应用启动后返回 nil

编辑:检查并重新检查了文件路径、归档和取消归档的代码,没有发现任何错误。App File System 在我不知道的启动之间是否存在问题?

我正在使用 NSCoder 在我的应用程序中存储图像。我创建了一个唯一的文件路径,将该文件路径存储到 Core Data,并使用文档中的相同文件路径归档图像。

在应用程序第一次启动时,一切都按预期工作 - 保存在 Core Data 中的文件路径用于取消归档存储在 Documents 中的图像。然而,在随后的启动中,unarchiver 返回 nil,我遇到了崩溃。

ImageForArchiving.m - 要使用 init 和 encode 方法保存的对象

保存到存档、核心数据、创建文件路径和解档代码

循环通过 Core Data 数组加载数据源。未归档对象的添加是 w

0 投票
0 回答
88 浏览

objective-c - initWithCoder 和 encodeWithEncoder 地狱。这可以简化吗?

有几十个模型,每个模型都有几十个属性,都可以使用NSCoder协议保存到磁盘NSKeyed(Un)archiver,为我的 iOS 应用程序创建和维护模型是很多工作。一个模型有十几个属性,我必须:

  1. 定义十几个属性(没关系,因为它们必须在某个地方定义)

  2. 填充该initWithCoder:方法,即十几行和两打次键入/复制粘贴属性名称(或常量键),3)一些适用于encodeWithCoder:.

出错的风险(在打字、复制或更改(或不更改)之类的东西encodeObject:encodeInteger:是巨大的。此外,这只是大量的手工工作,我不想这样做。毕竟,我们有计算机来做这件事我们。

首先,我研究了简化工作的方法。像这样的东西:

但这仍然是很多工作。这不能做任何简单的事情吗?我不喜欢在运行时使用自省或其他方法来执行此操作。

我正在考虑一些生成/操作模型文件并将它们添加到 Xcode 的 Python 脚本。这可能基于一些 JSON 描述文件。

让 Xcode 在预构建阶段自动运行它会很棒。这意味着我在一个地方定义了每个模型和每个属性一次,并且永远不必担心我忘记编码/解码的错误和属性。

那里有类似的东西吗?有没有将文件添加到 Xcode 项目的方法,而不会弄乱一些不可读的 Apple“XML”项目文件?那么在目标中包含标题怎么样。或者也许是其他一些很好的方法来节省我所有的工作?

0 投票
1 回答
73 浏览

ios - 来自 xib 的 UIControl 在 ios 7.1 上崩溃

我在情节提要中创建了一个自定义 UIControl ( MyControl )。在 ios 8 和 ios 9 上一切都很好,我的应用程序没有崩溃。但是在 ios 7 和例如 iphone 4 上,应用程序在尝试加载包含此控件的视图控制器时崩溃。调试器突出显示这一行:

typeof(self) loadedView = self.viewFromNib;

我的控制.h:

ControlFromXib.h:

ControlFromXib.m:

0 投票
1 回答
27 浏览

objective-c - 归档自定义对象时遇到问题

所以我有这个定制的课程:

LocationSupplementaryObject.h:

LocationSupplementaryObject.m:

所以稍后在我的程序中,我使用LocationSupplementaryObject类:

为了初始化名称,我使用从 parse.com 加载的对象,我们可以看到通过 NSLog 消息正确设置了 suppObject.storedPlaceName。但是,从 NSUserDefaults 检索和取消归档的名称结果是(null),我知道 NSUserDefaults 可能很慢,即使我们调用了同步,所以我正在检查程序另一端的对象:

即使类是用合法的 NSString 初始化的,它仍然向我显示 (null) 存储在 NSUserDefaults 中的名称。我应该承认,我对 NSCoder 没有很多经验,所以任何帮助都将不胜感激。

0 投票
1 回答
332 浏览

swift2 - 在 Swift 中使用 WatchConnectivity / 编码传输自定义对象数组

我正在尝试将一组自定义对象从 iOS 传输到 watchkitextension。

了解为了做到这一点,需要对数据进行编码。虽然解码时出错。

开始了:

自定义对象:

带有数组的类:

创建示例对象,附加到数组,然后编码:

在这里我得到错误“执行被中断 - 原因信号 SIGABRT”