我的实体中存在瞬态可选关系(无反向)。使用谓词
获取NSPredicate(format: "name LIKE\(option) (%@) AND tc!=nil", name)
没有给出结果,这与预期不符。 tc
是根据另一种关系计算的。
如果删除AND之后的部分和“AND”,则提取效果很好。
瞬态属性的实现如下:
public var tc : TC? {
self.willAccessValue(forKey: "tc")
self.didAccessValue(forKey: "tc")
return friend?.parent
}
我注意到 fetch未在此tc
访问者中找到调试断点。
控制台中没有打印错误消息。
我错过了什么?
编辑:
在阅读Ron的评论之后,我用Google搜索了更多内容并发现:
Core Data Transient-Like Attributes that are Compatible with NSPredicate 这不是我的选择,因为实际的瞬态关系计算成本更高。
Core Data : Searching using transient attributes as criteria
具有瞬态属性的答案是相同的。
起初我没有找到那些。也许我过于关注nil
或relationship
。我们可以通过与nil
的关系来获取,只要它不是短暂的:
iPhone SDK Core Data: Fetch all entities with a nil relationship?
Apple关于瞬态属性的文档是here。