OC-NSarray

//

//  main.m

//  NSarray_new

//

//  Created by qianfeng on 14-11-9.

//  Copyright (c) 2014年 qianfeng. All rights reserved.

//


#import <Foundation/Foundation.h>

#import "Dog.h"

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

    @autoreleasepool {

   /*

        // insert code here...

        NSLog(@"Hello, World!");

        //NSArray不可变数组

        //NSMutableArray可变数组

        //数组的元素可以使任意类型的对象

        //数组中装有元素的地址

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

        

        NSArray *array = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",dog1,nil];

        NSLog(@"%@",array);

        

        //每个类都有一个description方法,这个方法的返回值是一个描述类信息的字符串。

        //打印类对象就是打印类的description方法的返回值。

        NSLog(@"%@",dog1);

        

        //枚举器遍历数组:

        NSLog(@"枚举遍历:");

        //使用数组创建枚举对象,通过枚举对象遍历数组对象。

        NSEnumerator *enumerator = [array objectEnumerator];

        id obj;

        //通过obj遍历字符串对象并打印出来

        while (obj = [enumerator nextObject]){

            NSLog(@"%@",obj);

        }

        //倒序枚举器:

        NSEnumerator *reserenumer = [array reverseObjectEnumerator];

        id reverobj;

        while (reverobj = [enumerator nextObject]) {

            NSLog(@"reverobj: %@",reverobj);

        }

        

        //快速枚举

        NSLog(@"快速枚举法:");

        for(id obj in array){

            NSLog(@"%@",obj);

            

        }

        

        //计算数组元素个数:

        NSUInteger len = [array count];

        NSLog(@"len = %lu",len);

        NSArray *arrat_5 = [NSArray arrayWithArray:array];

        NSLog(@"array = %@",arrat_5);

        NSUInteger index = [arrat_5 indexOfObject:@"ss"];

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

        

        //- (NSArray *)objectsAtIndexes:(NSIndexSet *)indexes;

        NSIndexSet *indexset = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 5)];

        NSArray *naarray = [[NSArray alloc] init];

//        naarray =   [arrat_5 objectsAtIndexes:indexset];

        

        //使用i值遍历: 数组中的方法:

        //返回单个元素的地址:2表示第3个元素,元素下标为2的元素。

        obj = [array objectAtIndex:2];

        //结合上面所讲,可以通过for循环,手动遍历:

        //对于可变数组的操作,只有通过以下这种方式才能够对“可变”数组进行各种操作,上面两种枚举是不可行的。

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

            NSLog(@"手动遍历:\n");

            NSLog(@"%@",[array objectAtIndex:i]);

        }

    */

        //在数组的结尾追加一个对象

//        [array arrayByAddingObject:<#(id)#>]

//        [array arrayByAddingObjectsFromArray:<#(NSArray *)#>]

        NSArray *array_01 = @[@"qianfeng",@"chengge"];

        NSArray *array_02 = @[@"dfji",@"sdfdsf"];

        //把两个数组何在一起,array_02在后,array_01在前,

        array_01 = [array_02 arrayByAddingObjectsFromArray:array_01];

        NSLog(@"aara_01 = %@",array_01);

    

        //以传入字符串作为连接符拼接数组。组成一整个字符串。

        array_01 = [array_01 componentsJoinedByString:@"SB"];

        

        //返回两个数组中第一个相同的对象

        array_01 = [array_01 firstObjectCommonWithArray:@"qianfeng"];

        

        

        /*********可变数组****/

        NSMutableArray * muarray = [[NSMutableArray alloc] init];

        //为数组添加三个元素:

        //创建一个不可变数组之后,那么数组中的元素不可被修改,元素指向的兑现高取决于定义的对象

        

        //

        

        

        

        

        [muarray addObject:@"one"];//0

        [muarray addObject:@"tow"];//1

        [muarray addObject:@"three"];//2

        [muarray addObject:@"four"];//3

        [muarray addObject:@"five"];//4

        [muarray addObject:@"three"];//2

        NSLog(@"%@",muarray);

        /*

         //删除指定的字符串对象:

         [muarray removeObject:@"one"];

         NSLog(@"remove:%@",muarray);

         //从第x个开始找“three”字符串,遍历数组到第x+location个元素,如果遇见就删除,没有就不删除。

         [muarray removeObject:@"three" inRange:NSMakeRange(2, 1)];

         NSLog(@"%@",muarray);

         */

        //交换字符串位置:

        [muarray exchangeObjectAtIndex:0 withObjectAtIndex:1];

        NSLog(@"exchanged: %@",muarray);

        //枚举器法的使用:逆序可操作性:

        NSEnumerator *murat = [muarray reverseObjectEnumerator];

        NSString * mustr;

        int  i = 0;

        while (mustr = [murat nextObject]) {

            i++;

            //循环内可以进行增删改查的操作:

            

            //测试:删除数组中的最后一个元素:

            //如果没有if语句判断,为啥最后在循环之外输出muarray数组为空了呢?

            //因为每次循环都执行一次[muarray removeLastObject];所以最后一个元素就是倒数第二个元素,直到元素被删除完为止

            [muarray removeLastObject];

            NSLog(@"%@",mustr);

            if (i==1) {

                break;

            }

        }

        //打印muarray数组,其中的数据是空的?

        NSLog(@"%@",muarray);

        

        NSString *str_1 = @"I am a good man";

        NSArray *array_1 = [str_1 componentsSeparatedByString:@" "];

        NSMutableArray *muarray_1 = [[NSMutableArray alloc] init];

        NSEnumerator *enurator_1 = [array_1 reverseObjectEnumerator];

        NSString *str_2;

        while (str_2 = [enurator_1 nextObject]) {

            [muarray_1 addObject:str_2];

        }

        NSLog(@"%@",muarray_1);

        //使用空格把muarray_2数组的元素连接起来

        NSString *str_3 = [muarray_1 componentsJoinedByString:@" "];

        NSLog(@"%@",str_3);

        

//        可变数组继承于不可变数组

        NSMutableArray *mmuarray = [[NSMutableArray alloc] initWithObjects:@"one",@"tow",nil];

        

        

        

    }

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值