您的位置:首页 > 移动开发 > Objective-C

Objective-C之数字对象

2017-12-24 21:50 363 查看
int , float , long都是OC的基本数据类型,但是(!important)它们都不是对象。但是有的时候需要将他们最为一个对象来使用,例如:NSArray要求存储的值必须是对象。那么这里就可以使用NSNumber类。
一 , 为NSNumber赋值:
① : 赋值一个int类型的值,创建和初始化
int2O = [NSNumber numberWithInteger:100]

意义: 为int2O赋值整形100对象
②:获得init2O的的值
init2Get = [init2O integerValue]

注意 : integerValue说明init2O里面存的是int类型的值
例如:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
@autoreleasepool {
NSNumber *init2O;
NSInteger init2Get;
init2O = [NSNumber numberWithInteger:100];
init2Get = [init2O integerValue];
NSLog(@"%li",(long)init2Get);
}
return 0;
}

结果:



二,可以使用initWithInteger来直接实例化一个NSNumber



其他的类型

赋值方法实例化检索方法
numberWithCharinitWithCharcharValue
numberWithUnsignedCharinitWithUnsignedCharunsignedCharValue
numberWithShortinitWithShortshortValue
numberWithUnsignedShortinitWithUnsignedShortunsignedShortValue
numberWithIntegerinitWithIntegerintegerValue
numberWithUnsignedIntegerinitWithUnsignedIntegerunsignedIntegerValue
numberWithIntinitWithIntintValue
numberWithUnsignedIntinitWithUnsignedIntunsignedIntValue
numberWithLonginitWithLonglongValue
numberWithUnsignedLonginitWithUnsignedLongunsignedLongValue
numberWithLongLonginitWithLongLonglonglongValue
numberWithUnsignedLongLonginitWithUnsignedLongLongunsignedLongLongValue
numberWithFloatinitWithFloatfloatValue
numberWithDoubleinitWithDoubledoubletValue
numberWithBoolinitWithBoolbooltValue
验证2个number是否是相等的

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
@autoreleasepool {
NSNumber *init2O = [[NSNumber alloc] initWithInteger:100];
NSInteger init2Get;
init2Get = [init2O integerValue];
NSLog(@"%li",(long)init2Get);
//验证是否相等
NSNumber *float2O = [[NSNumber alloc] initWithFloat:100.00];
if( [init2O isEqualToNumber:float2O] == YES){
NSLog(@"Equal!!!");
}
}
return 0;
}

结果:



验证小于

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
@autoreleasepool {
NSNumber *init2O = [[NSNumber alloc] initWithInteger:100];
NSInteger init2Get;
init2Get = [init2O integerValue];
NSLog(@"%li",(long)init2Get);
//验证是否相等
NSNumber *float2O = [[NSNumber alloc] initWithFloat:100.00];
if( [init2O compare:float2O] == NSOrderedAscending){
NSLog(@"Asc!!!");
}else{
NSLog(@"No Asc");
}
}
return 0;
}

结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息