数据类型

2016-08-29  本文已影响24人  Coder大雄

NSNumber

NSNumber的类方法
+ (NSNumber *)numberWithChar:(char)value;
+ (NSNumber *)numberWithUnsignedChar:(unsigned char)value;
+ (NSNumber *)numberWithShort:(short)value;
+ (NSNumber *)numberWithUnsignedShort:(unsigned short)value;
+ (NSNumber *)numberWithInt:(int)value;
+ (NSNumber *)numberWithUnsignedInt:(unsigned int)value;
+ (NSNumber *)numberWithLong:(long)value;
+ (NSNumber *)numberWithUnsignedLong:(unsigned long)value;
+ (NSNumber *)numberWithLongLong:(long long)value;
+ (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value;
+ (NSNumber *)numberWithFloat:(float)value;
+ (NSNumber *)numberWithDouble:(double)value;
+ (NSNumber *)numberWithBool:(BOOL)value;
+ (NSNumber *)numberWithInteger:(NSInteger)value NS_AVAILABLE(10_5, 2_0);
+ (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5, 2_0);
NSNumber的实例方法
//实例方法 初始化
- (NSNumber *)initWithChar:(char)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithUnsignedChar:(unsigned char)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithShort:(short)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithUnsignedShort:(unsigned short)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithInt:(int)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithUnsignedInt:(unsigned int)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithLong:(long)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithUnsignedLong:(unsigned long)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithLongLong:(long long)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithUnsignedLongLong:(unsigned long long)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithFloat:(float)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithDouble:(double)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithBool:(BOOL)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithInteger:(NSInteger)value NS_AVAILABLE(10_5, 2_0) NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5, 2_0) NS_DESIGNATED_INITIALIZER;
NSNumber *number = @(1);
将基本类型数据封装到NSNumber中后,通过下面的实例方法重新获取它
NSNumber *myNumber = [NSNumber numberWithLong:0xabcdef];
NSNumber *floatnumber = [NSNumber numberWithFloat:12.33];
NSNumber *intNumber = [NSNumber numberWithInt:100];
NSNumber *doublenumber = [NSNumber numberWithDouble:12345e+15];
NSNumber *charNumber = [NSNumber numberWithChar:'X'];
int myInt = [intNumber intValue]; 
float myFloat = [floatnumber floatValue];
double myDouble = [doublenumber doubleValue];
char myChar = [charNumber charValue];
NSMutableArray *myArray = [[NSMutableArray alloc] init ];
[myArray addObject: 6 ];

上面的写法编译器会报错。解决方法就是把'6'包装成一个NSNumber对象。

NSMutableArray *myArray = [[NSMutableArray alloc] init ];
[myArray addObject:[NSNumber numberWithInt:6] ];
NSLog(@"array content is %@", myArray);
// 下面 A是NSNumber类型 B是NSString类型
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
B = [numberFormatter stringFromNumber:A];
NSNumber *number1 = [NSNumber numberWithInteger:13];
NSNumber *number2 = [NSNumber numberWithInteger:14];
NSComparisonResult result = [number1 compare:number2];
    
    if (result == NSOrderedAscending) {
        NSLog(@"升序");//number2 比 number1 大
    }else if (result == NSOrderedSame){
        NSLog(@"一致");
    }else if (result == NSOrderedDescending){
        NSLog(@"降序");
    }else{
        NSLog(@"error");
    }
NSNumber *number1 = [NSNumber numberWithInteger:13];
NSNumber *number2 = [NSNumber numberWithInteger:14];
    
    if ([number1 isEqualToNumber:number2]) {
        NSLog(@"same");
    }else{
        NSLog(@"nonono");
    }

int、NSInteger、NSUInteger、NSNumber之间的区别和联系

上一篇 下一篇

猜你喜欢

热点阅读