具体来说,假设我有一个 NSManagedObject,其“statusCode”属性设置为可转换,还有一个可逆值转换器子类可以从 NSStrings 转换为 NSNumbers,反之亦然。这个想法是使用值转换器,以便我接收 JSON 和来自 JSON 中的“状态”键的字符串自动映射到表示 NSManagedObject 中的状态代码的 NSNumber。相反,如果我将 NSManagedObject 上传到服务器,此时其状态属性将从 NSNumber 转换为 JSON 的字符串。
到现在为止还挺好。但是,如果我还希望能够从 NSManagedObjec 的 status 属性中获取一个简单的 int,以便我可以将其与代码中的枚举进行 AND 操作,该怎么办?也就是说,我会撒谎以涵盖 3 种情况:
myManagedObject.status = [JSONResponse valueForKey:@"status"]
(应该使用转换器来做 NSString -> NSNumber)[JSONforUpload setValue:myManagedObject.status forKey:@"status"]
(应该使用transformer来做NSNumber->NSString)- 从代码中的其他地方,任何类似于以下内容的内容:
if(myManagedObject.status & statusInProgress) ...
其中 statusInProgress 是一个枚举。
我想我可以暂时禁用值转换器,但是我不知道 NSManagedObject 是否有对它的引用,或者我是否应该从 NSValueTransformer 类中禁用它,这显然保留了一个已注册的转换器表?
我知道对于第三种情况,我可以做[myManagedObject.status intValue]
然后做按位比较,但我想知道intValue]
从这个对象的用户的角度来看,是否有任何方法可以自动返回。
有任何想法吗?