私はObjectiveCコードのこのビットを持っています、そこで私はにキャストしNSString
ていint
ます:
NSString *a=@"123abc";
NSInteger b=(int) a;
NSLog(@"b: %d",b);
そして、は次のNSLog
出力を生成します。
b: 18396
なぜこれが起こっているのか誰かが私に説明できますか?
文字列を整数にキャストすると、文字列から数値が取得されるという印象型でした。
私はObjectiveCコードのこのビットを持っています、そこで私はにキャストしNSString
ていint
ます:
NSString *a=@"123abc";
NSInteger b=(int) a;
NSLog(@"b: %d",b);
そして、は次のNSLog
出力を生成します。
b: 18396
なぜこれが起こっているのか誰かが私に説明できますか?
文字列を整数にキャストすると、文字列から数値が取得されるという印象型でした。
NSString
そこにオブジェクトへのポインタの整数値があります。文字列を整数に解析するには、次のようにする必要があります。
NSString *a = @"123abc";
NSInteger b = [a integerValue];
数値を取得するには、次を使用します。
int val = [stringObj intValue];
またはNSInteger
:
NSInteger val = [stringObj integerValue];
オブジェクトを整数にキャストすると、メモリアドレスへのポインタを取得します。を呼び出して[a integerValue]
、文字列の整数値を取得できます。
また、キャストするときは、の状態を使用することをNSInteger
お勧めしint
ます。64ビットオペレーティングシステムを使用する場合、aは64ビットにNSInteger
なるためです。
またはObjective-Cリテラル構文を使用する場合:
@([a intValue]);