指向接口&NSString'的指针的算法,在非脆弱的ABI中不是常量

时间:2012-02-27 02:05:17

标签: objective-c

当我试图计算两点之间的斜率时,我收到了这个错误。用户已将这些点输入到定义为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 个答案:

答案 0 :(得分:2)

您无法对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将为零)。