Objective-C學習篇09—NSNumber與笑笑文法,objectivecnsnumber

來源:互聯網
上載者:User

Objective-C學習篇09—NSNumber與笑笑文法,objectivecnsnumber
  NSNumber  由於數組,字典,集這三個容器中只能存放物件類型的資料,如果想把基礎資料型別 (Elementary Data Type)的資料存放到這三個容器中,需要把基礎資料型別 (Elementary Data Type)轉化為物件類型,此時就要藉助於NSNumber 這個類.  NSNumber 繼承自NSValue, 數字類,主要的作用是將基礎資料型別 (Elementary Data Type)轉換為NSNumber物件類型,也能將物件類型轉換為基礎資料型別 (Elementary Data Type)

  整型

int a = 100;建立NSnumber對象 numberWithInt:NSNumber *intNumber = [NSNumber numberWithInt:a];  即實現了將基礎資料型別 (Elementary Data Type)轉化為物件類型NSLog(@"intNumber = %@", intNumber);反之,將物件類型轉換為基礎資料型別 (Elementary Data Type)    .intValueint b = intNumber.intValue; // 屬性,相當於 [intNumber intvalue];NSLog(@"b = %d", b);

     2015-12-04 13:06:17.252 OCNSNumber[1659:136457] intNumber = 100

     2015-12-04 13:06:17.253 OCNSNumber[1659:136457] b = 100

 

  浮點型 

    float c = 3.14;    NSNumber *floatNumber = [NSNumber numberWithFloat:c];  numberWithFloat:     NSLog(@"floatNumber = %@", floatNumber);    float d = floatNumber.floatValue;   floatValue    NSLog(@"d = %.2f", d);

  字元型

char e = 'a';   字元類型的轉化為數字對象     numberWithChar:    NSNumber *charNumber = [NSNumber numberWithChar:e];    NSLog(@"charNumber = %@", charNumber);
char f = charNumber.charValue;  .charValue
NSLog(@"f = %c", f);

  短整型  

    short g = 10;    NSNumber *shortNumber = [NSNumber numberWithLong:g];   numberWithLong:    NSLog(@"shortNumber = %@", shortNumber);       short h = shortNumber.shortValue;   .shortValue    NSLog(@"h = %d", h);

 

  小練習

  // int n1 = 10, n2 = 22, n3 = 18, n4 = 15;  要求:將上面四個變數放到數組對象中,然後排序  // 轉化為物件類型    NSNumber *m1 = [NSNumber numberWithInt:n1];    NSNumber *m2 = [NSNumber numberWithInt:n2];    NSNumber *m3 = [NSNumber numberWithInt:n3];    NSNumber *m4 = [NSNumber numberWithInt:n4];  // 裝進數組對象中    NSArray *array = [NSArray arrayWithObjects:m1, m2, m3, m4, nil];  // 對數組對象中的元素進行排序    NSArray *sortArray = [array sortedArrayUsingSelector:@selector(compare:)];    NSLog(@"%@", sortArray);

     2015-12-04 13:15:23.908 OCNSNumber[1667:140688] (

     10,

     15,

     18,

     22

     )

  總結: 基礎資料型別 (Elementary Data Type)轉化為對象: 使用 [NSNumber numberWith+基礎資料型別 (Elementary Data Type)的類型名];反之,將物件類型轉化為基礎資料型別 (Elementary Data Type): 基礎資料型別 (Elementary Data Type)+Value;

笑笑文法

  下面是關於一些笑笑文法的使用

  笑笑文法,也就是字面量,是一種簡潔表示資料的方式

  1.對象資料類型的資料表示可以直接使用 @

  比如: 拿100 來講,一般的做法是:

    NSNumber *number = [NSNumber numberWithInt:100];

    NSLog(@"%@", number);

  使用笑笑文法可以這樣列印對象

    NSLog(@"%@", @100);

 

  2. 不可變數組的笑笑文法 使用 @[ ] 中括弧中放對象

    NSArray *nameArray2 = @[@"zhangSan", @"liSi", @"wangEr"];

    NSLog(@"%@", nameArray2);

   

  3. 可變數組笑笑文法 @[].mutableCopy;

    NSMutableArray *mArray2 = @[@"1", @"2", @"3"].mutableCopy;  // 可變的都加 .mutableCopy

    NSLog(@"%@", mArray2);

   

  4. 使用笑笑文法直接通過數組名加下標進行賦值

    mArray2[0] = @100;

    NSLog(@"%@", mArray2);

   

    /*

     2015-12-04 13:27:55.632 OCNSNumber[1690:146656] (

     100,

     2,

     3

     )

     */

 

  5. 字典的笑笑文法

  通常

    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaoZe", @"1", @"kunLing", @"2", @"sunLi", @"3", nil];

    NSLog(@"%@", dic);

  笑笑文法  @{ 鍵:值,... };

    NSDictionary *dic2 = @{@"1":@"xiaoZe", @"2":@"kunLing", @"3":@"sunLi"};

    NSLog(@"%@", dic2);

   

  6. 可變字典(只有可變才能修改) @{鍵:值,...}.mutableCopy

    NSMutableDictionary *mDic = @{@"1":@"a", @"2":@"b", @"3":@"c"}.mutableCopy;

    NSLog(@"%@", mDic);

   

    [mDic setObject:@"A" forKey:@"1"];

    NSLog(@"%@", mDic);

   

  7. 修改key值對應的value值

    mDic[@"2"] = @"L";

    NSLog(@"%@", mDic);

 

    NSString *value = [mDic objectForKey:@"2"];

    NSLog(@"%@", value);

   

  8.取出key值對應的value

    NSLog(@"%@", mDic[@"3"]);

  本節列印結果:

     2015-12-04 13:31:10.137 OCNSNumber[1700:148140] intNumber = 100

     2015-12-04 13:31:10.138 OCNSNumber[1700:148140] b = 100

     2015-12-04 13:31:10.138 OCNSNumber[1700:148140] floatNumber = 3.14

     2015-12-04 13:31:10.138 OCNSNumber[1700:148140] d = 3.14

     2015-12-04 13:31:10.139 OCNSNumber[1700:148140] charNumber = 97

     2015-12-04 13:31:10.139 OCNSNumber[1700:148140] f = a

     2015-12-04 13:31:10.139 OCNSNumber[1700:148140] shortNumber = 10

     2015-12-04 13:31:10.139 OCNSNumber[1700:148140] h = 10

     2015-12-04 13:31:10.139 OCNSNumber[1700:148140] (

     10,

     15,

     18,

     22

     )

     2015-12-04 13:31:10.139 OCNSNumber[1700:148140] 100

     2015-12-04 13:31:10.140 OCNSNumber[1700:148140] 100

     2015-12-04 13:31:10.140 OCNSNumber[1700:148140] (

     zhangSan,

     liSi,

     wangEr

     )

     2015-12-04 13:31:10.140 OCNSNumber[1700:148140] (

     1,

     2,

     3

     )

     2015-12-04 13:31:10.140 OCNSNumber[1700:148140] (

     100,

     2,

     3

     )

     2015-12-04 13:31:10.140 OCNSNumber[1700:148140] {

     1 = xiaoZe;

     2 = kunLing;

     3 = sunLi;

     }

     2015-12-04 13:31:10.140 OCNSNumber[1700:148140] {

     1 = xiaoZe;

     2 = kunLing;

     3 = sunLi;

     }

     2015-12-04 13:31:10.140 OCNSNumber[1700:148140] {

     1 = a;

     2 = b;

     3 = c;

     }

     2015-12-04 13:31:10.141 OCNSNumber[1700:148140] {

     1 = A;

     2 = b;

     3 = c;

     }

     2015-12-04 13:31:10.155 OCNSNumber[1700:148140] {

     1 = A;

     2 = L;

     3 = c;

     }

     2015-12-04 13:31:10.155 OCNSNumber[1700:148140] L

     2015-12-04 13:31:10.155 OCNSNumber[1700:148140] c

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.