NSNumber與NSValue關(guān)系與作用
1.由于集合里只能存放對(duì)象,不可以存放基本數(shù)據(jù)類型,所以我們有時(shí)候需要講一些對(duì)象比如基本數(shù)據(jù)類型,結(jié)構(gòu)體等存到NSDictionary NSArray中葵孤,我們就需要將這些數(shù)據(jù)類型或結(jié)構(gòu)體包裝成OC對(duì)象就谜,以便集合能訪問到吝岭。常用的用來包裝這些類型的有NSNumber NSValue
2.NSNumber只能包裝基本數(shù)據(jù)類型宛裕,比如int, float,char,BOOL等
3.NSValue可以包裝任意一個(gè)對(duì)象肤无,包括系統(tǒng)自定義的數(shù)據(jù)結(jié)構(gòu)槽惫,結(jié)構(gòu)體等等
4.NSNumber是NSValue的一個(gè)子類
- NSNumber
//包裝
int age = 20;
NSNumber *num = [NSNumber numberWithInt:age];//將基本數(shù)據(jù)類型int對(duì)象age 包裝成NSNumber對(duì)象
@(age);//直接包裝
//拆封
[num intValue];
- NSValue
將結(jié)構(gòu)體包裝成OC對(duì)象
CGPoint p = CGPointMake(1,2);
NSValue *val = [NSValue valueWithPoint:p];//將結(jié)構(gòu)體p包裝成NSValue對(duì)象
//拆
[value pointValue]