2015.04.23(Objective _c---NSArray和NSMutableArray)

来源:互联网 发布:编程小白学python pdf 编辑:程序博客网 时间:2024/05/21 01:44

一、NSArray


#import <Foundation/Foundation.h>

#import "Person.h"


int main(int argc,const char * argv[]) {

    @autoreleasepool {

       /*

         NSString NSArray NSDictionary

         */

        // int a[10] = {0,1,2,3...};

        // arr1数组对象

       __unused NSArray *arr1 =@[@"0",@"1",@"2"];

       __unused NSArray *arr2 = [NSArrayarrayWithObjects:@"0",@"1",@"2",nil];

        //元素只要是 id类型即可 arr3数组中有两个元素这两个元素都是数组

       __unused NSArray *arr3 =@[arr1,arr2];

        // 数组对数组进行初始化

       __unused NSArray *arr4 = [NSArrayarrayWithArray:arr2];

        //NSLog(@">>%@ %@ %@ %@",arr1,arr2,arr3,arr4);

        // OC数组中不能存放基本数据类型必须在基本数据类型前加@ 才能保存

        // NSString @"10" NSNumber @10

        // NSNumber基本数据类型面向对象的封装 基本数据类型转化为NSNumber类型后转变成一个对象

       __unused NSArray *arr5 =@[@10,@1.0];

        

       __unused NSNumber *num1 = [NSNumbernumberWithInt:10];

       __unused NSNumber *num2 = [NSNumbernumberWithFloat:1.0];

       __unused NSNumber *num3 = [NSNumbernumberWithChar:'C'];

       __unused NSNumber *num4 = [NSNumbernumberWithBool:TRUE];

        

       Person * p = [[Personalloc] init];

        // 格式化输出%@ 调用该对象的description方法 NSObject方法

       NSLog(@"%@",p);

        

       __unused NSArray * arr6 =@[arr1,@"wahaha",@10.5,p];

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

        // 获取数组中元素的个数

       NSLog(@"count is %zd",arr6.count);

        //下标直接获取数组中的对象

       id obj = arr6[0];

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

        

        // 数组越界崩溃问题

       NSInteger index = 100;

        // 防止数组越界

       if(arr6.count > index){

           __unused id obj = arr6[index];

        }

        

        //通过索引获取数组中的元素

      __unused id obj1 = [arr6objectAtIndex:1];

        

       // 遍历数组

       // 快速枚举

        // obj逐一指向arr6数组中的元素

       for (id objin arr6){

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

           // 判断对象类型

           if([obj isKindOfClass:[NSStringclass]]){

               NSLog(@"obj is NSString %@",obj);

            }

        }

        

        // 枚举器遍历数组

       NSEnumerator * enumer = [arr6 objectEnumerator];

       id obj2 = [enumer nextObject];

       while (obj2 == [enumer nextObject]) {

            NSLog(@"NSEnumerator is %@",obj2);

        }

    }

   return 0;

}


二、NSMutableArray


#import <Foundation/Foundation.h>


int main(int argc,const char * argv[]) {

    @autoreleasepool {

        // NSArray 不可变数组 不能被修改

        // NSMutableArray 可变数组 可被修改

        __unusedNSMutableArray * arr1 = [NSMutableArrayarray];

        __unusedNSMutableArray * arr2 = [[NSMutableArrayalloc] init];

       __unused NSMutableArray * arr3 = [[NSMutableArrayalloc] initWithObjects:@"1",@"2",@"3",@"2",nil];

       __unused NSMutableArray * arr4 = [NSMutableArrayarrayWithArray:arr3];

        

       // 添加

        

        // 向可变数组中添加元素

       NSLog(@"before arr4 %@ %zd",arr4,arr4.count);

        [arr4addObject:@"4"];

        NSLog(@"after arr4 is %@ %zd",arr4,arr4.count);

        

       // 删除

        

        // 删除数组中的指定的元素

//        [arr4 removeObject:@"3"];

//        // 删除数组的最后一项

//        [arr4 removeLastObject];

//        // 删除数组中的所有元素

//        [arr4 removeAllObjects];

//        // 删除指定index下标的元素

//        [arr4 removeObjectAtIndex:2];

//        // 指定一个Range 将满足Range条件的对象删除

//        [arr4 removeObject:@"2" inRange:NSMakeRange(0, 2)];

//        NSLog(@"%@ %zd",arr4,arr4.count);

        

       // 修改

        // - (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

        [arr4replaceObjectAtIndex:2 withObject:@"10"];

       NSLog(@"%@",arr4);

        

       NSArray * arr5 = @[@"q",@"w",@"e"];

        // 将整个数组arr5 当成一个元素添加到arr4

        [arr4addObject:arr5];

        // 将数组arr5中的每一个元素都添加到arr4

        [arr4addObjectsFromArray:arr5];

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

    }

   return 0;

}



0 0