Objective,object

來源:互聯網
上載者:User

Objective,object

OC中儲存資料最常用 的兩個容器就是數組和字典,而作為最常用的,應該瞭解這所有的特點,及用法。   

OC中的數組是一個容量,有序的管理了一系列元素,並且存放在數組裡的元素,必須是物件類型。

不可變數組,見名知意,不可改變的,只要建立成功之後都不能改變數組容量,元素。

 建立一個不可變數組對象

    //1.初始化方法(多個對象用逗號隔開,並且最後一個對象與nil之間也要有逗號)

    NSArray *array1 = [[NSArray alloc] initWithObjects:@"zhonger",@"honghuang",@"taixu",@"zhili", nil]; //nil不是對象,只是一個標誌,告訴編譯器數組賦值結束

    //2.便利構造器

    NSArray *array2 = [NSArray arrayWithObjects:@"zhuba",@"bada",@"zhonger",@"duliu", nil];

 列印出的資料以()內容顯示,比如:

array1 is (    zhonger,    honghuang,    taixu,    zhili)

    //3.笑笑文法 文法糖,字面量  這是不可變數組的寫法。。。

    //OC中的數組可以存放不同類型的對象

    NSArray *array3 = @[@"yousiyi", @"huangshenme", @"shuishen", @"qiuxiang", @12];

//數組的兩個核心方法  count  objectAtIndex:

    //count 求數組元素個數

    unsigned long count = [array1 count];

    NSLog(@"array1count is %lu",count);    //可以列印出元素的個數

    

    //objectAtIndex:通過給定的下標,找到相應的元素

    NSString *bada = [array2 objectAtIndex:1];

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

    NSString *zhonger = array2[2];  //文法糖表達方式 

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

    

    //遍曆array3裡面的每一個元素

    unsigned long count1 = [array3 count];

    for (int i = 0; i < count1; i ++) {

        NSLog(@"%@",array3[i]);//文法糖

    }

    

    //判斷數組中是否包含某個元素

    BOOL isTrue = [array2 containsObject:@"zhuba"];

    NSLog(@"isTrue is %d",isTrue);

    

    //擷取某個元素所在的數組下標

    NSUInteger index = [array2 indexOfObjectIdenticalTo:@"bada"];

    NSLog(@"index is %lu",index);

 

    //通過數組來實現分割字串,拼接字串、

   //以空格分隔字串

    NSString *str = @"zhonger m 19 m";

    NSArray *resultArray = [str componentsSeparatedByString:@" "];

   //以66666拼接字串

    NSArray *rArray = @[@"bada", @"qiuxiang",@"zaiyiqi"];

    NSString *str1 = [rArray componentsJoinedByString:@"66666"];

 

//至於可變數組,在不可變數組的情況下,提供了增刪改的操作,讓數組功能變得更加多樣化

    //1.建立一個可變數組

    NSMutableArray *mArr = [[NSMutableArray alloc]initWithCapacity:0];

    //2.便利構造器

    NSMutableArray *mArr1 = [NSMutableArray arrayWithCapacity:0];

    

    //3.可變數組的字面量建立方式

    NSMutableArray *mArr2 = [@[@"zhonger", @"dada", @"zhuzhu", @"linlin"]mutableCopy];

 

    //往可變數組裡添加元素,addobject

    [mArr2 addObject:@"addobject"];

 

    //往可變數組的指定位置插入一個新的元素  insertObject

    [mArr2 insertObject:@"charu" atIndex:1];

    

    //移除可變數組中的某一元素

    //通過下標

    [mArr2 removeObjectAtIndex:4];

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

    //通過指定內容

    [mArr2 removeObject:@"zhuzhu"];

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

    //刪除數組中最後一個元素

    [mArr2 removeLastObject];

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

    //刪除數組中所有的元素

    //[mArr2 removeAllObjects];

    //NSLog(@"mArr2 is %@",mArr2);

    

    //替換可變數組中的元素

    [mArr2 replaceObjectAtIndex:0 withObject:@"gou"];

    [mArr2 replaceObjectAtIndex:1 withObject:@"taixu"];

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

    

    //交換可變數組中兩個元素的位置

    [mArr2 exchangeObjectAtIndex:0 withObjectAtIndex:1];

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

    

注意:無論是不可變還是可變數組,如果是在MRC環境下,只要加入這個數組中,都是導致引用計數加1,作為三大容量之一,數組存放的是有序的對象,不同於字典的有序,數組可以實現排序。

相關文章

聯繫我們

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