减法中的iOS错误

时间:2015-04-16 11:16:39

标签: ios objective-c

我注意到Objective-C减法中的一个奇怪的事情:

我有一个定义的导航栏高度:

#define NAVIGATION_BAR_HEIGHT self.navigationController.navigationBar.frame.size.height + 20.0f

我还有一个简单的减法:

NSLog(@"%f - %f = %f", self.parentViewController.view.frame.size.height, NAVIGATION_BAR_HEIGHT, self.parentViewController.view.frame.size.height - NAVIGATION_BAR_HEIGHT);

此次通话的控制台输出:

768.000000 - 64.000000 = 744.000000

这到底是怎么回事?

2 个答案:

答案 0 :(得分:4)

始终使用#define

的括号
#define NAVIGATION_BAR_HEIGHT (self.navigationController.navigationBar.frame.size.height + 20.0f)

答案 1 :(得分:0)

将您的行更改为,

 NSLog(@"%f - %f = %f", self.parentViewController.view.frame.size.height, NAVIGATION_BAR_HEIGHT, self.parentViewController.view.frame.size.height - (NAVIGATION_BAR_HEIGHT));

NAVIGATION_BAR_HEIGHT放入大括号()。