-1

画面の高さをNSIntegerに保存しようとしています。

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

私もそれをNSStringNSNumberに格納しようとしましたが、互換性のない型 'CGFloat' (別名 'float')* の式で ' NSInteger' (別名 'int*') を初期化していますというエラーが常に発生します。コードの後半で保存したものから画面サイズを取得するために戻りますが、フロートは何に保存できますか?

4

3 に答える 3

2

NSInteger基本のtypdefですint

使用する必要があります

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

*注: self.view.frame.size.height はあなたを返すfloatので、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 に答える