web-dev-qa-db-ja.com

目的CでNSInteger値をint値に変換するにはどうすればよいですか?

ObjectiveCでNSUInteger値をint値に変換するにはどうすればよいですか?

また、NSUIntegerNSLog値を印刷する方法、私は%@,%d,%luこれらは動作せず、スローされますEx-Bad Accessエラー。

ありがとうございました

26
GR.
NSUInteger intVal = 10;
int iInt1 = (int)intVal;
NSLog(@"value : %lu %d", (unsigned long)intVal, iInt1);

詳細については、 こちら をご覧ください

73
Girish

Intへの明示的なキャスト

NSUInteger foo = 23;
int bar = (int)foo;

でも

NSLog(@"%lu",foo);

oSXの現在のビルドでは正常に動作します。 NSUIntegerは他のビルドではunsigned intとして型定義されているため、安全ではありません。 iOSなど。厳密な答えは、最初にキャストすることです。

NSLog(@"%lu",(unsigned long)foo);
3
Steve Waddicor

こんにちは、私のために働いています...

これを試しました。

NSUInteger  inbox_count=9;
NSLog(@"inbox_count=%d",(int)inbox_count);

//output   
inbox_count=9

すべてに感謝します。

1
GR.

このように簡単です、

NSUInteger uintV = 890;
int intVal = (int) uintV;
NSLog(@"the value is : %lu", (unsigned long)intVal);


これは次のようなものを出力します、
値は89