0

NSManagedObjectのサブクラスの外部からこのような述語を作成すると、正常に機能します。

CNSTag *aTag = ...
_predicateForMatchingObjects = [NSPredicate predicateWithFormat:@"ANY tags == %@", aTag];

ただし、以下のように、クラスCNSTagに関数を提供しようとすると、述語を作成しようとしているときにプログラムがクラッシュします。

- (NSPredicate *)predicateForMatchingObjects {

_predicateForMatchingObjects = [NSPredicate predicateWithFormat:@"ANY tags == %@", self];
return _predicateForMatchingObjects;
}

述語内のselfのキーパス(たとえば、 "ANY tags.name ==%@"、self.name)にアクセスすると、正常に機能します。自分にアクセスできません。なぜこれが当てはまるのか誰かが知っていますか?

4

0 に答える 0