我存储了具有坐标(x,y,z)的实体。我想通过使用诸如@“sqrt(x x + y y + z*z) < distance”之类的谓词来获取它们。
有没有办法做到这一点?
我试图用 predicateWithFormat 来做到这一点:
我什至写了很多看起来像的代码
NSExpression * dxExpression = [NSExpression expressionForFunction:@"from:subtract:"
arguments:[NSArray arrayWithObjects:
[NSExpression expressionForConstantValue: [NSNumber numberWithFloat:currX]],
[NSExpression expressionForKeyPath:@"self.xCoord"], nil]
];
NSExpression * dxSqrExpression = [NSExpression expressionForFunction:@"multiply:by:"
arguments:[NSArray arrayWithObjects:dxExpression, dxExpression, nil]
];
但它仅适用于非分层表达式。即,所以 dxExpression 工作正常,但是当我尝试使用 dxSqrExpression 时,我收到错误
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Unsupported function expression (-140.857 - #self.xCoord) * (-140.857 - #self.xCoord)'
我试过没有自我,但这也不起作用。
任何帮助将不胜感激,谢谢。