-1

我正在尝试将屏幕的高度存储在NSInteger中。

NSInteger *screenHeight = self.view.frame.size.height;

我也尝试将它存储在NSStringNSNumber中,但总是有一个错误说Initializing 'NSInteger ' (aka 'int*') with an expression of in compatible type 'CGFloat' (aka 'float')*. 我将返回从我稍后在代码中存储的任何内容中获取屏幕大小,但是我可以在什么中存储浮点数?

4

3 回答 3

2

NSInteger是基本的类型定义int

你需要使用

NSInteger screenHeight = self.view.frame.size.height;

*注意:self.view.frame.size.height 返回你float所以为什么不使用浮动。

此外,除非你真的想要一个指向整数的指针,否则永远不要使用NSInteger*


编辑:

如果你想NSNumber那么

NSNumber *screenHeight = @(self.view.frame.size.height); //box the value to NSNumber

如果你想要它NSString然后

NSString *screenHeight = [NSString stringWithFormat:@"%f", self.view.frame.size.height];
于 2014-03-11T08:00:15.963 回答
1

去掉 '*' NSInteger 是原始类型。

NSInteger screenHeight = self.view.frame.size.height;
于 2014-03-11T07:58:58.830 回答
0

如果您需要将其存储为对象(即将其添加到数组中),请使用

NSNumber *screenHeight =[NSNumber numberWithFloat:self.view.frame.size.height];
于 2014-03-11T08:02:07.437 回答