Сравнение CGPoint и NSNumber - PullRequest
1 голос
/ 31 июля 2011

Это мой первый пост, так что будьте добры :)

Я искал решения, но не могу найти ни одного.Проблема может быть в том, чтобы задать вопрос таким образом, чтобы Google вернул полезные результаты.

Итак, у меня есть NSMutableArray (называемый boardColCoords), и у меня есть CGPoint (называемый touchLocation).Я хочу сравнить два, чтобы я мог привязать местоположение UIImageView к правильной координате в массиве boardColCoords.

Вот соответствующий код:

UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self.view];

NSNumber *boardSquareX = [boardColCoords objectAtIndex:i];

if (touchLocation.x - boardSquareX <= 12)
{
}

Я знаю, что 12 в конечном итоге придется изменить, но я просто хочу, чтобы вычитание работало первым.Конкретная ошибка, которую я получаю:

Недопустимые операнды для двоичного выражения ('CGFloat' (также известный как 'float') и "NSNumber *).

Ответы [ 3 ]

8 голосов
/ 31 июля 2011

NSNumber - это оболочка, вы должны "извлечь" его значение с чем-то вроде floatValue, чтобы сравнить так:

if (touchLocation.x - [boardSquareX floatValue] <= 12)
2 голосов
/ 31 июля 2011

Чтобы получить значение с плавающей точкой из NSNumber, вы должны сделать

[boardSquareX floatValue];
1 голос
/ 31 июля 2011

Вам нужно извлечь примитивное число из boardSquareX.

if (touchLocation.x - [boardSquareX floatValue] <= 12)
{
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...