ios 中NSArray

來源:互聯網
上載者:User

標籤:des   io   ar   os   sp   for   on   div   log   

//

#import <Foundation/Foundation.h>

#import "Animal.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //1. 建立方法
        //2. 排序
        //3. 取元素
        //4. 串連,分隔
        //5. 強引用
        //6. for...in
        
        Animal *ani = [[Animal alloc] init];
        ani.age = 12;
        
        
        
        //建立一個有三個元素的OC不可變數組
        //不可變數組的元素不能再變
//        NSArray *arr1 = @[@12, @"34", ani];
//        NSLog(@"%lu", arr1.count);
//        NSLog(@"%@", arr1);
        
        //不是修改數組
        ani.age = 20;
        
        Animal *ani10 = [[Animal alloc] init];
        ani10.age = 5;
        
        Animal *ani11 = [[Animal alloc] init];
        ani11.age = 48;
        
        NSArray *arr1 = @[ani, ani10, ani11];
        
        NSLog(@"%@", arr1);
        
        //排序,只需要實現兩兩之間比較的方法
        //SEL
        NSArray *arr10 = [arr1 sortedArrayUsingSelector:@selector(myCompare:)];
//        NSLog(@"%@", arr10);
        
        //依次執行print
        [arr10 makeObjectsPerformSelector:@selector(print)];
        //可以傳遞一個參數
        [arr10 makeObjectsPerformSelector:@selector(call:) withObject:@"Zhangsan"];
        
        //產生新數組,並且參數作為最後一個元素
        NSArray *arr30 = [arr10 arrayByAddingObject:@"aa"];
        NSLog(@"%p, %p", arr10, arr30);
        
        NSString *str10 = @"a.b.c";
        //分割字串
        NSArray *arr40 = [str10 componentsSeparatedByString:@"."];
        NSLog(@"%@", arr40);
        
        //連接字串
        NSString *str11 = [arr40 componentsJoinedByString:@"<+>"];
        NSLog(@"%@", str11);
        
//        NSArray *arr20 = @[@123, @"234", @345];
//        [arr20 writeToFile:@"/Users/apple/Desktop/test.plist" atomically:YES];
//        
//        NSArray *arr21 = [NSArray arrayWithContentsOfFile:@"/Users/apple/Desktop/test"];
//        NSLog(@"%@", arr21);
        
        
        return 0;
        
        NSNumber *num1 = arr1[0];
        NSLog(@"%@", num1);
        
        Animal *ani2 = [[Animal alloc] init];
        ani2.age = 20;
        NSNumber *num2 = @34;
        
        //檢查是否包含某個對象
        if([arr1 containsObject:num2]) {
            NSLog(@"在arr1中");
            
            //擷取對象的位置
            NSUInteger index = [arr1 indexOfObject:ani2];
            NSLog(@"%lu", index);
            if (NSNotFound == index) {
                NSLog(@"沒zhaodao ");
            }
        }
        else {
            NSLog(@"不在");
        }
        
        return 0;
        
        NSLog(@"%lu", arr1.count);
        
//        ani = nil;
        
        //nil表示參數結束
        //數組中不能裝nil對象
        arr1 = [[NSArray alloc] initWithObjects:@90, ani, @80, nil];
        NSLog(@"%@", arr1);
        
//        id cArr[4];
//        cArr[0] = @"abc";
//        cArr[1] = @"efg";
//        cArr[2] = ani;
//        cArr[3] = @"xxx";
        
//        arr1 = [[NSArray alloc] initWithObjects:cArr count:4];
//        NSLog(@"%@", arr1);
        
        //建立一個數組,並且用arr1中的元素初始化
        //實際上數組裡裝的是對象的指標,數組會對裝入其中的對象產生一個強引用
        NSArray *arr2 = [NSArray arrayWithArray:arr1];
        NSLog(@"%lu", arr2.count);
        
        //根據位置擷取對象
//        NSLog(@"%@", arr2[1]);
        NSLog(@"%@", [arr2 objectAtIndex:arr2.count - 1]);
        
        //擷取第0個元素
        NSLog(@"%@", [arr2 firstObject]);
        //擷取最後一個元素
        NSLog(@"%@", [arr2 lastObject]);
        
        NSLog(@"------");
        for (int i = 0; i < arr2.count; ++i) {
            NSLog(@"%@", arr2[i]);
        }
        
        //兩個類型
        //1. 編譯時間類型,指標的類型
        //2. 運行時類型,對象的類型
        NSLog(@"+++++");
        
        arr2 = @[@12, ani, @34];
        //快速枚舉
        for (id obj in arr2) {
            //檢查一個對象是否為NSNumber類型
            if ([obj isKindOfClass:[NSNumber class]]) {
                NSNumber *num = (NSNumber *)obj;
                NSLog(@"%d", num.intValue);
            }
            else if ([obj isKindOfClass:[Animal class]]){
                Animal *animal = (Animal *)obj;
                NSLog(@"age: %d", animal.age);
            }
            
//            obj.age = 20;
        }
        
        ani = nil;
        arr1 = nil;
        arr2 = nil;
        
        NSLog(@"xxxxxxx");
    }
    
    NSLog(@"-----");
    return 0;
}

 

ios 中NSArray

聯繫我們

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