У меня есть хранилище с объектами, у которых есть координаты (x, y, z).
Я хочу получить их, используя предикат типа @ "sqrt (x x + y y + z * z) <расстояние". </p>
Есть ли способ сделать это?
Я пытался сделать это с помощью предиката WithFormat:
Я даже написал много кода, похожего на
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)'
Я пробовал без себя, но это тоже не работает.
Любая помощь будет оценена, спасибо.