zoukankan      html  css  js  c++  java
  • Oc中的数组

    ==========================

    数组

    ==========================

    一.认识数组

    oc中可以把NSObject对象的子类放到数组这个集合中,但是int、float、double等基础数据类型需要先进行转换才可以存入数组。

    oc中数组以NS开头,其中分为可变数组和不可变数组;

    1.不可变数组(NSArray)

    数组在创建的时候被初始化之后,不可以再次进行增、删、改;

            //NSArray 是一个类,苹果公司封装好的数组类。

            //数组需要先分配内存再使用,

            //initWithObjects 逐个单词翻译:init -- 初始化 with ---对... objects --- 多个对象

            //initWithObjects 用多个对象对 [NSArray alloc] 分配的内存空间进行初始化

            NSString* str = [NSString stringWithFormat:@"%d",123];

            NSArray* arr = [[NSArray alloc]initWithObjects:@"one",@"two",@"three", nil];

            //【注】以小括号包围,每个数据都是以逗号隔开的数据格式是数组数据

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

            mydog.value = 100;

            cat* mycat = [[cat alloc]init];

             //oc中的数组可以存储不一样类型的数据

            //定义objectArr这个对象并给它分配内存并初始化值,最后一个nil结尾一定不要省略

            //数组初始化之后,不能对其进行增删改的数组,是不可变数组,不可变数组的数据只有第一次初始化的时候给赋值,之后不允许进行增删改;可以理解为是一种只读做用;

            NSArray* objectArr = [[NSArray alloc]initWithObjects:mydog,mycat,@"yudejun", nil];

            NSLog(@"%@ %@",arr,objectArr);

             //取元素

            //【注】严禁数组越界

            //隐式转换

            //

            dog* tmp = [objectArr objectAtIndex:0];

            NSLog(@"%d",tmp.value);

            

            //取数组元素个数

            NSLog(@"%ld",[objectArr count]);

            

            //遍历数组

            for (int i=0; i<[arr count]; i++) {

                

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

            }

            //oc中遍历数组有一个更简单的方法

            //这个语法就是for(in)语法,for循环先去判断NSString* str 是否在arr中,如果在,则继续循环

            //数组会遍历arr的元素个数次

            for (NSString* str in arr) {

                NSLog(@"%@",str);

            }

            

            //优缺点比对

            //第一种写法方便遍历指定元素,但写起来繁琐。

            //第二种写法简洁,并且不会出现数组越界导致程序崩溃的问题

            //这2种方式互补,某一些情况下必须用第一种方式才能解决。

            

            

            //从Xcode4.6开始,苹果提供如下写法

            //创建了一个不可变数组并初始化了值。

            

            NSArray* TempArr = @[@"yu",@"de",@"jun"];

           //如上方法等价: NSArray* TempArr = [[NSArray alloc]initWithObjects:@"yu",@"de",@"jun", nil];

            NSLog(@"%@",TempArr);

            

            //[arr objectAtIndex:0]

            NSLog(@"%@",arr[1]);

            //NSMutableArray 为可变数组,可以进行增删改

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

            

            //添加元素

            [m_arr addObject:@"1"];

            [m_arr addObject:mydog];

            [m_arr addObject:@"3"];

            

            //删除下标索引值是0的元素

            [m_arr removeObjectAtIndex:0];

            

            //交换数组元素

            [m_arr exchangeObjectAtIndex:0 withObjectAtIndex:1];

            

            //清空数组  删除数组中所有元素

            [m_arr removeAllObjects];

            

            //删除数组元素中最后一个元素

            [m_arr removeLastObject];

            

            //插入一个元素,在索引值是0的位置,原来元素位置后移

            [m_arr insertObject:@"haha" atIndex:0];

            

            //替换元素 用999这个对象值来替换掉第0个元素的值

            [m_arr replaceObjectAtIndex:0 withObject:@"999"];

            

            //判断是否包含某一个对象

            BOOL isContain = [m_arr containsObject:@"999"];

            if (isContain) {

                NSLog(@"包含");

            }

            else

            {

                NSLog(@"不包含");

            }

  • 相关阅读:
    memcached连接说明
    在win下启动memcached
    Memcached 查看帮助
    HTTP请求信息和响应信息的格式
    购买服务器配置带宽算法
    PHP删除数组指定下标的值
    tp5 验证器使用
    tp5 验证码功能实现
    layui 关闭当前窗口,刷新父级页面
    layui icon样式1到7
  • 原文地址:https://www.cnblogs.com/ljcgood66/p/5285314.html
Copyright © 2011-2022 走看看