IOS学习笔记之十一(包装类、description、isequal)
1、下面的類不是包裝類
1)、NSInteger(64位相對(duì)于long)
2)、NSUInteger(64位相對(duì)于unsigned long)
3)、CGFLoat(64位相對(duì)于double, 32位相對(duì)于float)
?
?
?
?
?
?
2、下面類是包裝類
1)、NSValue
NSValue是NSNumber的父類
2)、NSNumber
一般方法
+numberWith***:把指定類型包裝成NSNumber
-initWith***:先需要?jiǎng)?chuàng)建NSNumber對(duì)象,然后再用一個(gè)基本類型的值來初始化NSNumber.
-xxxValue:返回該NSNumnber對(duì)象包裝的基本類型值
?
?
?
?
?
?
3、description方法
這個(gè)方法有點(diǎn)類似java里面的toString方法,需要重寫,直接打印對(duì)象,會(huì)默認(rèn)調(diào)用這個(gè)方法,這里和java有點(diǎn)類似,返回字符串格式如下
<類名[實(shí)例變量1=值1,類名[實(shí)例變量2=值2, …]>
?
?
?
?
?
?
?
4)、==和equals
==比較基本類型,如果比較對(duì)象,就是比較對(duì)象的內(nèi)存地址,地址相同才返回1
Equals方法一般需要重寫,和java里面有點(diǎn)類似,我們一般用來比較字符串,因?yàn)镹SString里面重寫了這個(gè)方法,java里面的String也重寫了這個(gè)方法,但是字符串常量池需要注意,如果指針指向字符串常量池,而且地址一樣,我們用==比較會(huì)返回真,這里java和ios都一樣,如下
NSString *s1 = @“hello”;NSString *s2 = @“hello”;S1==s2,這里返回1?
?
5、簡單測試demo
NSNumber *num = [NSNumber numberWithInt:20];NSNumber *dou = [NSNumber numberWithDouble:4.5];NSNumber *ch = [[NSNumber alloc] initWithChar:'h'];NSLog(@"%d", [num intValue]);NSLog(@"%g", [dou doubleValue]);NSLog(@"%@", ch);NSLog(@"%c", [ch charValue]);MyApple *apple = [[MyApple alloc] initWithColor:@"red" weight:5.6];NSLog(@"%@", apple);NSString *s1 = [NSString stringWithFormat:@"chenyu"];NSString *s2 = [NSString stringWithFormat:@"chenyu"];NSLog(@"s1 == s2 is %d", s1 == s2);NSLog(@"s1 equals s2 %d", [s1 isEqual:s2]);NSString *s3 = @"hello";NSString *s4 = @"hello";NSLog(@"s3 == s4 is %d", s3 == s4);NSLog(@"s1 == s3 is %d", s1 == s3);?
?
?
?
6、運(yùn)行結(jié)果
20
4.5
104
h
<MyApple[color=red, weight=5.6]>
s1 == s2 is 1
s1 equals s2 1
s3 == s4 is 1
s1 == s3 is 0
?
?
?
?
?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的IOS学习笔记之十一(包装类、description、isequal)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IOS之学习笔记九(对象的初始化)
- 下一篇: IOS之学习笔记十四(协议的定义和实现)