Арифметика указателя на интерфейс 'NSString', который не является постоянным размером в нехрупком ABI - PullRequest
1 голос
/ 27 февраля 2012

Я получаю эту ошибку, когда пытаюсь вычислить наклон между двумя точками.Пользователь ввел точки в текстовые поля, определенные как X1, Y1, X2, Y2.Затем они нажимают кнопку «Рассчитать».

Вот мой код, в котором я получаю сообщение об ошибке

-- (IBAction)calculate:(id)sender {

  self.slopeCalculate = (self.Y2.text - self.Y1.text)/(self.X2.text - self.X1.text);

}

Он конкретно указывает только на «self.X2.text», поэтому я не знаю, что происходит.Что я тут не так делаю?

1 Ответ

2 голосов
/ 27 февраля 2012

Вы не можете выполнять числовые вычисления для текстовых данных, таких как NSString, вам нужно сначала превратить их в цифры, например, с помощью:

double x1Dbl = [self.X1.text doubleValue];
double x2Dbl = [self.X2.text doubleValue];
double y1Dbl = [self.Y1.text doubleValue];
double y2Dbl = [self.Y2.text doubleValue];
self.slopeCalculate = (y2Dbl - y1Dbl) / (x2Dbl - x1Dbl);

Вам также необходимо следить за краевым случаем вертикальных линий, поскольку они имеют бесконечный (или неопределенный) наклон (x2Dbl - x1Dbl будет нулевым).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...