核心数据获取与瞬态关系谓词!=无

在我的实体中有一个临时的可选关系(不是相反的) 。 获取谓词

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 } 

我注意到这个tc访问器内部的debugging断点没有打到 。 控制台中没有打印错误信息。

我错过了什么?


编辑:

读完Ron的评论后,我search了更多,发现:

  • 与NSPredicate兼容的核心数据类似于瞬态的属性这对我来说不是一种select,因为实际的瞬态关系计算起来比较昂贵。

  • 如何使用链式虚拟财产的NSPredicate?

  • NSPredicate不能使用计算字段

  • 核心数据:使用瞬态属性作为标准进行search

具有瞬态属性的答案是一样的。

起初我没有find。 也许我太专注于nilrelationship 。 只要不是暂时的,我们可以通过与nil的关系来获取:

iPhone SDK的核心数据:获取所有实体与零关系?

苹果关于瞬态属性的文档在这里 。