问题标签 [nsvaluetransformer]

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 投票
2 回答
588 浏览

ios - transformValueClass 返回 AnyObject 类型的数组

我正在尝试实现NSValueTransformer名为ArrayValueTransformer的类,该类旨在转换一个可以包含任何类型对象的数组,如下所示:

但是 return 语句给出了这个错误:

0 投票
1 回答
1421 浏览

ios - Mantle - 将字符串转换为枚举值

在我的User课堂上,我定义了一个type属性和一个UserType枚举。该type属性作为StringJSON 中的值接收:

我想分别在序列化和反序列化期间MantleString值转换为UserType枚举对象并返回到一个。String我搜索了其他 SO 帖子和 Mantle 文档,但无法正常工作。这是我的尝试:

在上面的代码中,我制作了一个自定义转换器,用于将 a 转换为String枚举UserType值并返回。我已经覆盖Mantle's JSONTransformerForKey了方法并为type属性指定了我的自定义转换器以执行转换。当我尝试将 JSON 序列化为User对象时,我收到以下错误消息:

type显然是User模型的一个属性,但正在发生的事情导致Mantle无法识别它。

我应该在我的实现中进行哪些更改才能使Stringto enum 转换起作用?提前感谢您的帮助!

0 投票
1 回答
2634 浏览

ios - Mantle - 在 Swift 中转换嵌套模型

我在使用 Mantle 在 Swift 中反序列化和序列化嵌套模型时遇到了很多麻烦。我相信我已经正确设置了一切,但我什至无法克服编译错误。为了给出一些观点,我已经成功地转换了没有嵌套模型对象的类。这是我的课:

这段代码不会编译,我也无法编译。这是我收到的错误消息:

我尝试将反向块的返回类型更改为Personand Person!,但我收到相同的错误消息。我已经为此苦苦挣扎了很长一段时间,在 Swift 中找不到工作示例,因此将不胜感激。

0 投票
1 回答
80 浏览

ios - NSValueTransformer + MagicalRecord + Mogenerator

在我的 ManagedObjectContext 上调用 save:(NSErrro **) 时,我无法调用我的 NSValueTransformer 实现。

我已经尝试通过拧我自己的 ManagedObject-Class 而不依赖于 Mogenerator 来解决这个问题,但没有任何成功。

这是我的实体配置的屏幕截图: 在此处输入图像描述

这是我的 NSValueTransformer-Subclass (不会命中任何断点): 在此处输入图像描述

这就是我创建模型和保存上下文的方式。我还尝试使用 MR_create 和 MR_saveToPersistentStoreCoordinator-Methodes 进行装箱和保存,但没有任何成功。

在此处输入图像描述

为什么将实体保存到持久存储协调器时核心数据不执行我的 NSValueTransformer 代码?

0 投票
2 回答
1114 浏览

ios - iOS 核心数据加密使用 NSValueTransformer

我正在尝试使用 Core Data 和 CommonCrypto 加密数据。我正在尝试使用 NSValueTransformer 懒惰地加密和解密。

但是,当我现在尝试将加密数据保存到持久存储协调器时,它失败了。每次我试图将我的数据保存到数据库时,它都会给我:

-[__NSCFString bytes]: 无法识别的选择器发送到实例

我确定这是某种数据库和 NSManagedObject 不匹配,但我无法弄清楚。我觉得这可能很简单,但我找不到解决方案。我的代码:

NSValueTransformer

为了让 NSValueTransformer 工作,我必须做的是:

如果没有上面的代码,就永远不会调用 NSValueTransformer。

我已将数据库字段标记为可转换类型并将其命名为:TryHardEncryption。你们知道这里有什么问题吗?

编辑 它所涉及的属性是:

当我调试它们时,加密和解密函数都返回一个字符串。

0 投票
0 回答
420 浏览

swift - 使用 ValueTransformer 将 UIColor 存储在 Core Data 中

我正在尝试将 UIColor 存储在 Core Data 中(我不想将其存储为字符串),我想使用 NSValueTransformer。我已经编写了下一个 ValueTransformerclass(toHex(),它是我将颜色转换为十六进制字符串的扩展),但是每次当我尝试保存数据时(例如object.color = UIColor.blackColor()),我都会收到崩溃并显示无法读取的错误消息 «Unrecognized selector sent to 0xf93»。

0 投票
1 回答
1170 浏览

swift - 在哪里为 Swift 中的核心数据实现 NSValueTransformer

我正在尝试将实体放在每个具有非标准数据类型的核心数据存储中 - 一个是 NSDocument,另一个是 NSURL。我在 .xcdatamodeld 中得到了这一点,我需要将它们声明为可转换的。而且我认为我需要添加一些实现 NSValueTransformer 的东西来将它们变成 NSData (......或者是否有一个默认的转换器会自动执行此操作?)

我认为这个问题应该很容易回答:我在哪里实现它?我还没有找到在 Swift 中执行此操作的明确示例。有一个Objective-C 的例子,但是 .h 和 .m 文件的分离让我不清楚这在 Swift 中会去哪里。

假设我有一个名为 Notebook 的实体类型,其属性名为 folderURL - 在数据库中属于 Transformable 类型,在实际变量中属于 NSURL 类型。(我使用它作为示例,因为它更简单 - 请不要告诉我只是将 NSURL 转换为字符串,因为这不适用于其他 Transformable。)

问题是:假设我需要一个文件夹 URL 的 NSValueTransformer,我应该把它放在哪里?Notebook应该实现它吗?Notebook+CoreDataProperties 应该吗?或者我是否需要一个名为 FolderURL 的单独子类来实现它,如果需要,我如何在 Notebook(和/或 Notebook+CoreDataProperties)中引用该子类?

(之前有一个类似标题的问题,但他们似乎已经比这更进一步了——他们没有询问或展示“在哪里”。)

0 投票
1 回答
1398 浏览

ios - NSValueTransformer,如何使用?

我正在使用NSValueTransformer类将NSDictionary对象转换为自定义对象。

我已经使用以下方法实现了子类:

然后我注册了我的子类:

我现在应该如何从NSDictionary. 由于我没有找到任何有关此的信息,因此仅在与 inCoreData.xibfiles 之类的绑定一起使用时。

我可以NSValueTransformer用于我的目的吗?-> 转换NSDictionary成我的自定义对象。

谢谢!

0 投票
1 回答
491 浏览

xcode - 运行 ibtool 时出现异常:找不到具有名称的值转换器

我刚刚将 Xcode 升级到 8.0 (8A218a),并将我在 Swift 2.3 中的项目转换为 Swift 3.0。现在剩下的唯一问题是这个错误:

“运行 ibtool 时出现异常:找不到名为 UTIToIconTransformer 的值转换器”

UTIToIconTransformer定义如下:

该代码在 Swift 2.3 中运行良好。使用此值转换器的绑定设置如下:

在此处输入图像描述

如果我删除此绑定,应用程序会运行,并且行标题会正确显示。

我已经尝试NSValueTransformer.setValueTransformer()在应用程序委托中调用+initialize(),在applicationDidFinishLaunching值转换器中调用+initialize(),如此在 StackOverflow 处在 NShipster 处所建议的(虽然我不认为“通常,单例实例将在 +initialize值转换器子类的方法,因此无需进一步设置即可使用。”符合Apple的文档。),都没有成功。

Apple 的文档中,它说

但是在AppDelegate's中注册override class func initialize()并没有帮助。在 Xcode 7 和 Swift 2.3 中,它甚至可以在没有注册的情况下工作。

0 投票
2 回答
12237 浏览

ios - 将 Swift 的日期与 CoreData 一起使用

我的数据库模型中有很多日期字段。CoreData 允许根据“使用标量类型”选项使用 NSDate 或 TimeInterval 来保存日期。

在此处输入图像描述

但是,这两个选项对我都不利,因为我想将日期用作Date对象。由于 NSDate 不能隐式转换为,我必须在我的 NSManagedObject 类中将Date值转换/转换为或实现许多自定义设置器/获取器。Date

我曾尝试使用ValueTransformer,但它不适用于非@objc 类,如Date.

那么有没有一种简单的方法来保存和获取DateCoreData 的值?