Objective-C NSNumber方法

來源:互聯網
上載者:User

標籤:

//這幾天的內容大部分都是方法的,可能在看的時候感覺沒有什麼可學的,但是這些東西後續都會涉及到,最好還是能夠敲一遍,這樣在後面遇到的時候就不會感到陌生!

NSNumber 是一個類繼承於NSValue 即一個基礎資料型別 (Elementary Data Type)的集合 包括char a signed or unsigned char, short int, int, long int, long long int, float, or double or as a BOOL        NSNumber類型有點類似id類型,對於任何類型的數字對象都能用它來聲明,也就是用它來聲明數字對象,通過聲明,很難判斷聲明變數是什麼數字類型,確定數字物件類型多是在初始化的時候才能確定。

        1.當需要使用int類型的變數的時候,可以像寫C的程式一樣,用int,也可以用NSInteger,但更推薦使用NSInteger,因為這樣就不用考慮裝置是32位的還是64位的。

        2.NSUInteger是無符號的,即沒有負數,NSInteger是有符號的。

        3.有人說既然都有了NSInteger等這些基礎類型了為什麼還要有NSNumber?它們的功能當然是不同的。

        NSInteger是基礎類型,但是NSNumber是一個類。如果想要在NSMutableArray裡儲存一個數值,直接用NSInteger是不行的,比如在一個NSMutableArray裡面這樣用:

        NSMutableArray *array = [[NSMutableArray alloc]init];

        [array addObject:[NSNumber numberWithInt:88]];

        這樣是會引發編譯錯誤的,因為NSMutableArray裡面放的需要是一個類,但‘88’不是類。

        用NSNumber類來封裝(即以對象形式實現)基礎資料型別 (Elementary Data Type)。

        例如以下建立方法:

        + (NSNumber *) numberWithChar: (char) value; //轉化char

        + (NSNumber *) numberWithInt: (int) value; //轉化int

        + (NSNumber *) numberWithFloat: (float) value; //轉化float

        + (NSNumber *) numberWithBool: (BOOL) value; //轉化BOOL

        將基本類型資料封裝到NSNumber中後,就可以通過下面的執行個體方法重新擷取它:

        - (char) charValue;

        - (int) intValue;

        - (float) floatValue;

        - (BOOL) boolValue;

        - (NSString *) stringValue;

        例子:

        NSNumber *num = [NSNumber numberWithInt:88];

        NSInteger integer = [num intValue];

        NSString與NSInteger的相互轉換

        NSInteger integerNumber = 88;  

        NSString * string = [NSString stringWithFormat:@"%d",integerNumber];  

        NSLog(@"string is %@", string);      

        integer = [string intValue];  

        NSLog(@"integer is%d", integerNumber);

Objective-C NSNumber方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.