IOS學(xué)習(xí)筆記之十一(包裝類、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è)基本類型的值來(lái)初始化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)類似,我們一般用來(lái)比較字符串,因?yàn)镹SString里面重寫了這個(gè)方法,java里面的String也重寫了這個(gè)方法,但是字符串常量池需要注意,如果指針指向字符串常量池,而且地址一樣,我們用==比較會(huì)返回真,這里java和ios都一樣,如下

    NSString *s1 = @“hello”;
     
    NSString *s2 = @“hello”;
     
    S1==s2,這里返回1

 
5、簡(jiǎn)單測(cè)試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


 


作者:chen.yu
深信服三年半工作經(jīng)驗(yàn),目前就職游戲廠商,希望能和大家交流和學(xué)習(xí),
微信公眾號(hào):編程入門到禿頭 或掃描下面二維碼
零基礎(chǔ)入門進(jìn)階人工智能(鏈接)