NSNumberクラス
*
解説
継承 | NSObject |
準拠 | NSObject (NSObject) |
フレームワーク | /System/Library/Frameworks/Foundation.framework |
使用可能 | OS X 10.0以降 |
iOS 2.0以降 | |
定義 | NSDecimalNumber.h |
NSValue.h |
概要
char、short int、int、long int、long long int、float、double、BOOLなどを表すクラスです。NSArrayやNSDictionaryは数値を直接内包できませんので、NSNumberクラスオブジェクトにして渡すことになります。
作成
BOOL値でNSNumberを作成するには(+ numberWithBool)メソッドを使います。
char値でNSNumberを作成するには(+ numberWithChar)メソッドを使います。
double値でNSNumberを作成するには(+ numberWithDouble)メソッドを使います。
float値でNSNumberを作成するには(+ numberWithFloat)メソッドを使います。
int値でNSNumberを作成するには(+ numberWithInt)メソッドを使います。
NSInteger値でNSNumberを作成するには(+ numberWithInteger)メソッドを使います。
long値でNSNumberを作成するには(+ numberWithLong)メソッドを使います。
long long値でNSNumberを作成するには(+ numberWithLongLong)メソッドを使います。
short値でNSNumberを作成するには(+ numberWithShort)メソッドを使います。
unsigned char値でNSNumberを作成するには(+ numberWithUnsignedChar)メソッドを使います。
unsigned int値でNSNumberを作成するには(+ numberWithUnsignedInt)メソッドを使います。
NSUInteger値でNSNumberを作成するには(+ numberWithUnsignedInteger)メソッドを使います。
unsigned long値でNSNumberを作成するには(+ numberWithUnsignedLong)メソッドを使います。
unsigned long long値でNSNumberを作成するには(+ numberWithUnsignedLongLong)メソッドを使います。
unsigned short値でNSNumberを作成するには(+ numberWithUnsignedShort)メソッドを使います。
NSNumber *boolNumber = [NSNumber numberWithBool:YES];
NSNumber *charNumber = [NSNumber numberWithChar:127];
NSNumberオブジェクトの初期化
allocで作成した後、BOOL値でNSNumberを作成するには(– initWithBool)メソッドを使います。
allocで作成した後、char値でNSNumberを作成するには(– initWithChar)メソッドを使います。
allocで作成した後、double値でNSNumberを作成するには(– initWithDouble)メソッドを使います。
allocで作成した後、float値でNSNumberを作成するには(– initWithFloat)メソッドを使います。
allocで作成した後、int値でNSNumberを作成するには(– initWithInt)メソッドを使います。
allocで作成した後、NSInteger値でNSNumberを作成するには(– initWithInteger)メソッドを使います。
allocで作成した後、long値でNSNumberを作成するには(– initWithLong)メソッドを使います。
allocで作成した後、long long値でNSNumberを作成するには(– initWithLongLong)メソッドを使います。
allocで作成した後、short値でNSNumberを作成するには(– initWithShort)メソッドを使います。
allocで作成した後、char値でNSNumberを作成するには(– initWithUnsignedChar)メソッドを使います。
allocで作成した後、unsigned int値でNSNumberを作成するには(– initWithUnsignedInt)メソッドを使います。
allocで作成した後、NSUinteger値でNSNumberを作成するには(– initWithUnsignedInteger)メソッドを使います。
allocで作成した後、unsigned long値でNSNumberを作成するには(– initWithUnsignedLong)メソッドを使います。
allocで作成した後、unsigned long long値でNSNumberを作成するには(– initWithUnsignedLongLong)メソッドを使います。
allocで作成した後、unsigned short値でNSNumberを作成するには(– initWithUnsignedShort)メソッドを使います。
値へのアクセス
NSNumberオブジェクトからBOOL値を得るには(– boolValue)メソッドを使用します。
NSNumberオブジェクトから 値を得るには(– charValue)メソッドを使用します。
NSNumberオブジェクトからunsigned char値を得るには(– unsignedCharValue)メソッドを使用します。
NSNumberオブジェクトからdouble値を得るには(– doubleValue)メソッドを使用します。
NSNumberオブジェクトからfloat値を得るには(– floatValue)メソッドを使用します。
NSNumberオブジェクトからint値を得るには(– intValue)メソッドを使用します。
NSNumberオブジェクトからunsigned int値を得るには(– unsignedIntValue)メソッドを使用します。
NSNumberオブジェクトからNSInteger値を得るには(– integerValue)メソッドを使用します。
NSNumberオブジェクトからNSUInteger値を得るには(– unsignedIntegerValue)メソッドを使用します。
NSNumberオブジェクトからlong値を得るには(– longValue)メソッドを使用します。
NSNumberオブジェクトからunsigned long値を得るには(– unsignedLongValue)メソッドを使用します。
NSNumberオブジェクトからlong long値を得るには(– longLongValue)メソッドを使用します。
NSNumberオブジェクトからunsigned long long 値を得るには(– unsignedLongLongValue)メソッドを使用します。
NSNumberオブジェクトからshort値を得るには(– shortValue)メソッドを使用します。
NSNumberオブジェクトからunsigned short 値を得るには(– unsignedShortValue)メソッドを使用します。
NSNumberオブジェクトからNSDecimal値を得るには(– decimalValue)メソッドを使用します。
文字列で表現する
レシーバを文字列で取得するには(– stringValue)メソッドを使用します。ロケールを考慮して文字列にするには(– descriptionWithLocale)メソッドを使用します。
#pragma mark NSNumber -(void)method019 { NSNumber *floatNumber = [NSNumber numberWithFloat:100.234];//32bit NSLog(@"%s %s ",__FUNCTION__,[floatNumber objCType]); NSLocale *jpLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"ja-JP"]; NSLocale *frLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"]; NSLog(@"%s %@ ",__FUNCTION__,[floatNumber descriptionWithLocale:jpLocale]); //=>-[OOOAppDelegate method019] 100.234 NSLog(@"%s %@ ",__FUNCTION__,[floatNumber descriptionWithLocale:frLocale]); //=>-[OOOAppDelegate method019] 100,234 }
NSNumberオブジェクトの比較
レシーバと別のNSNumberオブジェクトがどちらが大きいかを比較するには(– compare)メソッドを使用します。レシーバと別のNSNumberオブジェクトが同じかどうかを調べるには(– isEqualToNumber)メソッドを使用します。
タイプ情報
NSNumberオブジェクトが持つ数値タイプの情報を取得するには(– objCType)メソッドを使用します。
リテラル
Xcode 4.4からNSNumberのリテラルが導入されました。サンプルでは以前のXcodeでも使用できるように従来からの表記をしていますが、新しい表記方法を使うことで、大幅に省略した書き方ができるようになります。
従来の表記方法
NSNumber *charNumber = [NSNumber numberWithChar:127]; NSNumber *floatNumber = [NSNumber numberWithFloat:2147483647];
新しい表記方法
NSNumber *charNumber = @127; NSNumber *floatNumber = @2147483647.0f;
ただし、(iOS5.1 Xcode4.4)ではMacアプリケーションでは使える表記が、iOSアプリケーションでは使えないものがあるようです。徐々に使えるようになるといいですね。
適合するプロトコル
メソッド
NSNumberオブジェクトの作成
+ numberWithBool
+ numberWithChar
+ numberWithDouble
+ numberWithFloat
+ numberWithInt
+ numberWithInteger
+ numberWithLong
+ numberWithLongLong
+ numberWithShort
+ numberWithUnsignedChar
+ numberWithUnsignedInt
+ numberWithUnsignedInteger
+ numberWithUnsignedLong
+ numberWithUnsignedLongLong
+ numberWithUnsignedShort
NSNumberオブジェクトの初期化
– initWithBool
– initWithChar
– initWithDouble
– initWithFloat
– initWithInt
– initWithInteger
– initWithLong
– initWithLongLong
– initWithShort
– initWithUnsignedChar
– initWithUnsignedInt
– initWithUnsignedInteger
– initWithUnsignedLong
– initWithUnsignedLongLong
– initWithUnsignedShort
数値へのアクセス
– boolValue
– charValue
– decimalValue
– doubleValue
– floatValue
– intValue
– integerValue
– longLongValue
– longValue
– shortValue
– unsignedCharValue
– unsignedIntegerValue
– unsignedIntValue
– unsignedLongLongValue
– unsignedLongValue
– unsignedShortValue
文字表現の取得
NSNumberオブジェクトの比較
アクセスタイプ情報
サブクラス化の注意
引数
参照
メソッド