iOS不可變數組的所有操作


#pragma mark 創建數組

    //1.通過對象方法創建數組

    NSArray * array = [[NSArray alloc]initWithObjects:@"One",@"Two",@"Three",@"Four",@"Five", nil];

       // NSLog(@"%@",array);

      //nil表示空,本質是0,如果是基礎數據類型指針用NULL表,對象指向為空一般用nil表示 類對象為空用Nil;

      //  Class-->類類型

      //   SEL --> 選擇器

    //通過類方法創建數組

    NSArray * array1 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

        

    //從Xcode4.6以后數允許用下述方法創建對象

    //NSNumber @()快捷轉換基本數組類型到NSNumber對象

    //有些公司不允許使用,為保持一致推薦使用對象方法或類方法創建的數組

    Dog * dog = [[Dog alloc]init];

    NSArray * array3 = @[@"One",@"Two",@"Three",@"Four",@"Five",dog];

       //id-->完成指針-->接收任何數據類型的對象

      //數組本身是一個對象

      //數組的元素如@"One",@"Two",@"Three",@"Four",@"Five"等都是任意類型對象,不僅限於字符串

       //創建數組對象時傳參,傳入的是對象的地址

       //數組中只能存儲兌現搞得地址,而非存儲對象的本體

       //同一個對象可以存放發兩個數組中,仍然是同一個對象.

      //在一個數組中修改了對象,在另一個數組中讀取對象,會發現也被修改了

      //數組可以存數組

        

       //其實%@可以打印任何對象,只要對對象重寫description放來

        NSLog(@"%@",array3);

#pragma mark 數組成員的個數

    NSUInteger num = [array count];

        NSLog(@"%lu",num);

 

 

#pragma mark 數組的成員

    //0~n-1

    //錯誤信息: index 5 beyond bounds [0 .. 4]'數組越界

    NSString * str  = [array objectAtIndex:3];

        NSLog(@"%@",str);

    //Xcode4.6 取數組成員

    NSLog(@"%@",array[2]);

        

#pragma mark 獲取數組某元素在數組中的位置

   NSUInteger  index = [array1 indexOfObject:@"1"];

        NSLog(@"%lu",index);

 

#pragma mark 判斷數組是否包含某個元素

        

    BOOL  tag  =  [array  containsObject:@"Five"];

        NSLog(@"%d",tag);

        

#pragma mark 獲取第一個元素/最后一個元素

    NSString * str2 =[array1 firstObject];

    NSString * str3 = [array1 lastObject];

        NSLog(@"%@ %@",str2 , str3);

        

#pragma mark 將數組的元素進行拼接

     // 只對字符串對象操作

    NSString * str4 = [array componentsJoinedByString:@" "];

        NSLog(@"%@",str4);

        

#pragma mark 將字符串進行拆分

   NSString * str5 = @"YES,I am a so bad man";

   //拆分字符串

  NSArray * array4  = [str5 componentsSeparatedByString:@" "];

        NSLog(@"%@",array4);

    //拆分字符串,生成一堆新的子串,原字符串不變,該方法創建一個數組,將每個子串添加到當前數組中.

//    NSCharacterSet * set = [NSCharacterSet characterSetWithCharactersInString:@", "];

    NSArray * array5 = [str5 componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@", "]];

    //set是集合

    //[NSCharacterSet characterSetWithCharactersInString:@", "]這個方法創建一個集合的對象,返回對象地址,字符集合中的字符,來自字符串的@", "

        NSLog(@"%@",array5);

#pragma mark 數組元素的混雜

        Dog * dog1 = [[Dog alloc]init];

        Cat * cat1 = [[Cat alloc]init];

        Dog * dog2 = [[Dog alloc]init];

        Cat * cat2 = [[Cat alloc]init];

        Dog * dog3 = [[Dog alloc]init];

       

    NSArray * array6 = @[dog1,cat1,dog2,dog3,cat2];

        //判斷對象屬於某個類

    //-(BOOL)isKindOfClass:(Class)class;

     

        for (id obj in array6) {

            if([obj isKindOfClass:[Dog class]]){

                NSLog(@"B 哥");

            }

            if([obj isKindOfClass:[Cat class]]){

                NSLog(@"小 龍");

            }

        }

        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM