溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

【Objective-C】OC中NSNumber數(shù)字對(duì)象的常用處理方法

發(fā)布時(shí)間:2020-06-07 00:06:38 來源:網(wǎng)絡(luò) 閱讀:332 作者:jiangqq900826 欄目:移動(dòng)開發(fā)

之前已經(jīng)學(xué)習(xí)過了基本數(shù)據(jù)類型。但是這些都市基本數(shù)據(jù)類型,它們不是對(duì)象。因此,不能向它們發(fā)送消息。

然后有時(shí)也需要將它們當(dāng)做對(duì)象來處理。不如,我們需要把基本數(shù)據(jù)類型放入到集合中(在Cocoa中集中只能存放對(duì)象,

無法存放基本數(shù)據(jù)類型),那么這時(shí)我們需要將基本類型轉(zhuǎn)換成數(shù)字對(duì)象.OC中提供了數(shù)據(jù)對(duì)象”NSNumber“可以將基本數(shù)據(jù)

類型”包裝“成對(duì)象,這樣我們就可以將基本數(shù)據(jù)類型來處理了

下面我們來看下具體使用例子:

// //  main.m //  FoundationDemo1 // //  Created by hmjiangqq on 14-1-23. //  Copyright (c) 2014年 hmjiangqq. All rights reserved. //  #import <Foundation/Foundation.h>  int main(int argc, const char * argv[]) {      @autoreleasepool {                  // insert code here...         NSLog(@"Hello, World!");         /*===========NSNumber=================*/          //創(chuàng)建一個(gè)NSNumber對(duì)象         NSNumber *monthNumber=[[NSNumber alloc]initWithInt:10];         NSNumber *lengthNumber=[[NSNumber alloc]initWithFloat:10.8];         NSLog(@"month =%@\n",monthNumber);         NSLog(@"length =%@\n",lengthNumber);         //還原成基本數(shù)據(jù)類型         int month=[monthNumber intValue];         float length=[lengthNumber floatValue];         NSLog(@"month=%d\n",month);         NSLog(@"length=%.1f\n",length);         /*=============NSString====================*/     }     return 0; }
上面只是使用到了NSNumber中的兩個(gè)包裝和還原的方法,在NSNumber中還有很多相類似的方法:

- (id)initWithChar:(char)value; - (id)initWithUnsignedChar:(unsigned char)value; - (id)initWithShort:(short)value; - (id)initWithUnsignedShort:(unsigned short)value; - (id)initWithInt:(int)value; - (id)initWithUnsignedInt:(unsigned int)value; - (id)initWithLong:(long)value; - (id)initWithUnsignedLong:(unsigned long)value; - (id)initWithLongLong:(long long)value; - (id)initWithUnsignedLongLong:(unsigned long long)value; - (id)initWithFloat:(float)value; - (id)initWithDouble:(double)value; - (id)initWithBool:(BOOL)value; - (id)initWithInteger:(NSInteger)value NS_AVAILABLE(10_5, 2_0); - (id)initWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5, 2_0);
與之相反的方法如下:

- (char)charValue; - (unsigned char)unsignedCharValue; - (short)shortValue; - (unsigned short)unsignedShortValue; - (int)intValue; - (unsigned int)unsignedIntValue; - (long)longValue; - (unsigned long)unsignedLongValue; - (long long)longLongValue; - (unsigned long long)unsignedLongLongValue; - (float)floatValue; - (double)doubleValue; - (BOOL)boolValue; - (NSInteger)integerValue NS_AVAILABLE(10_5, 2_0); - (NSUInteger)unsignedIntegerValue NS_AVAILABLE(10_5, 2_0);
當(dāng)然我們還可以使用NSNumber的靜態(tài)方法進(jìn)行創(chuàng)建對(duì)象,方法如下:

+ (NSNumber *)numberWithChar:(char)value; + (NSNumber *)numberWithUnsignedChar:(unsigned char)value; + (NSNumber *)numberWithShort:(short)value; + (NSNumber *)numberWithUnsignedShort:(unsigned short)value; + (NSNumber *)numberWithInt:(int)value; + (NSNumber *)numberWithUnsignedInt:(unsigned int)value; + (NSNumber *)numberWithLong:(long)value; + (NSNumber *)numberWithUnsignedLong:(unsigned long)value; + (NSNumber *)numberWithLongLong:(long long)value; + (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value; + (NSNumber *)numberWithFloat:(float)value; + (NSNumber *)numberWithDouble:(double)value; + (NSNumber *)numberWithBool:(BOOL)value; + (NSNumber *)numberWithInteger:(NSInteger)value NS_AVAILABLE(10_5, 2_0); + (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5, 2_0);
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI