gpt4 book ai didi

iPhone核心数据: Do Transformable Attributes have to Transform to only Data?

转载 作者:行者123 更新时间:2023-12-03 16:09:14 28 4
gpt4 key购买 nike

我一直在核心数据中使用可转换属性,将图像和颜色等复杂对象转换为原始数据。我拿了this ...

The idea behind transformable attributes is that you access an attribute as a non-standard type, but behind the scenes Core Data uses an instance of NSValueTransformer to convert the attribute to and from an instance of NSData. Core Data then stores the data instance to the persistent store.

...意味着您只能将事物与数据相互转换,而不能与其他类型的属性之一(例如字符串)进行转换。

我突然想到情况可能并非如此。该文档可能只是讨论最常见的情况。 IIRC,在 Cocoa 绑定(bind)中,转换在很大程度上可以是任意的。例如,可以将 NSURL 转换为 NSString 进行显示,然后再反转。

在我浪费时间进行实验并可能得到令人困惑的结果之前,我想知道是否有人确切地知道转换是否仅与数据进行转换。

最佳答案

正确。您必须将属性转换为 NSData 对象。您需要将 NSURL 序列化为 NSData - 默认的 NSKeyedUnarchiveFromDataTransformerName 转换器将为您完成此操作。

另一种方法(也是我用于 URL 的方法)是维护两个并行属性。一个用于 URL 的未定义类型的 transient 属性,另一个用于后备存储的字符串类型的持久属性。第一次请求时,我会根据字符串懒惰地构造 URL,并且每当 URL 发生更改时,我都会更新字符串属性。

没有办法强制执行它,但您确实不想使用实体类外部的字符串属性。我通常将字符串属性的 @property 定义设为私有(private),以提醒自己不要使用它。

关于iPhone核心数据: Do Transformable Attributes have to Transform to only Data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2188273/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com