gpt4 book ai didi

ios - 是否可以有条件地禁用 NSManagedObject 属性的 NSValueTransformer ?

转载 作者:行者123 更新时间:2023-12-03 17:23:05 25 4
gpt4 key购买 nike

具体来说,假设我有一个 NSManagedObject,其“statusCode”属性设置为可转换,并且有一个可逆值转换器子类,可以从 NSStrings 转换为 NSNumbers,反之亦然。这个想法是使用值转换器,以便我接收 JSON 和来自 JSON 中“状态”键的字符串自动映射到表示 NSManagedObject 中的状态代码的 NSNumber。相反,如果我将 NSManagedObject 上传到服务器,此时它的状态属性将从 NSNumber 转换为 JSON 字符串。

到目前为止一切顺利。但是,如果我还希望能够从 NSManagedObjec 的 status 属性中获取一个简单的 int ,以便我可以将其与代码中的枚举进行 AND 操作,该怎么办?也就是说,我会撒谎来掩盖 3 种情况:

  1. myManagedObject.status = [JSONResponse valueForKey:@"status"] (应使用转换器执行 NSString -> NSNumber)
  2. [JSONforUpload setValue:myManagedObject.status forKey:@"status"](应使用转换器执行 NSNumber->NSString)
  3. 从代码中的其他位置,任何类似于以下内容的内容:if(myManagedObject.status & statusInProgress) ...,其中 statusInProgress 是一个枚举。

我想我可以暂时禁用值转换器,但是我不知道 NSManagedObject 是否有对它的引用,或者我是否应该从 NSValueTransformer 类中禁用它,该类显然保留了已注册转换器的表?

我知道对于第三种情况,我可以执行 [myManagedObject.status intValue] 然后进行按位比较,但我想知道是否有任何方法可以拥有 intValue] 从该对象的用户的角度自动返回。

有什么想法吗?

最佳答案

为什么不为 JSON 转换编写两个附加方法并将属性保留为整数?那么您将获得两全其美的好处。

关于ios - 是否可以有条件地禁用 NSManagedObject 属性的 NSValueTransformer ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15828901/

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