• OC基础数据类型-NSArray


    1、数组的初始化

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

    数组的元素可以是任意的对象,不局限于字符串;
    数组中装有元素的地址;

    1 NSLog(@"%@", array);    //打印数组,实际上是打印数据的每一个对象。因为数组重写的Description方法

    遍历数组中的对象
    方法1:枚举器法

    1 NSEnumerator *enumerator = [array objectEnumerator];
    2 id obj;
    3 while (obj = [enumerator nextObject]) {
    4     NSLog(@"%@", obj);
    5 }

    方法2:快速枚举法

    1 for(id obj in array){
    2     NSLog(@"%@", obj);
    3 }

    方法3:使用i值遍历

    1 NSUInteger length = [array count]; //返回数组元素的个数
    2 obj = [array objectAtIndex:2]; //返回单个元素的地址
    3 NSInteger i;
    4 for(i = 0; i<[array count];i++){
    5     NSLog(@"%@", [array objectAtIndex:i]);
    6 }

    2、可变数组

    1 NSMutableArray *array = [[NSMutableArray alloc] init];
    2 //往可变数组中添加元素
    3 [array addObject:@"one"];
    4 [array addObject:@"two"];
    5 [array addObject:@"three"];

    交换两个数组的位置

    1 [array exchangeObjectAtIndex:0 withObjectAtIndex:2];

    删除元素,remove

    1 [array removeObject:@"one"];
    2 [array removeObjectAtIndex:1];
    3 [array removeAllObjects];

     同时遍历和删除数组元素的时候,需要逆序;否则,会出现问题。

    1 NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"one",@"two",@"three", nil];
    2 //逆序
    3 NSEnumerator *enumerator = [array reverseObjectEnumerator];
    4 NSString *str;
    5 while (str = [enumerator nextObject]) {
    6     [array removeLastObject];
    7     NSLog(@"%@",str);
    8 }
    9 NSLog(@"%@",array);

    3、数组和字符串的联合使用

    将一个字符串逆序输出

    1 NSString *str = @"I am a so bad man";
    2 NSArray *array = [str componentsSeparatedByString:@" "]; //用空格分割字符串
    3 NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
    4 NSEnumerator *enumerator = [array reverseObjectEnumerator];
    5 NSString *obj;
    6 while (obj = [enumerator nextObject]) {
    7     [mutableArray addObject:obj];
    8 }
    9 NSString *newStr = [mutableArray componentsJoinedByString:@" "]; //用指定的字符串,拼接字符串

    结题!!!

  • 相关阅读:
    类型初始值设定项引发异常的解决方法
    sql修改排序规则,区分大小
    SQLServer查询所有子节点
    Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_L及由于排序规则不同导致查询结果为空的问题
    SQLServer跨库查询--分布式查询
    DataTable对象的操作问题
    .Net插入大批量数据
    SQL修改字段类型
    数据抓包分析
    Qss 皮肤
  • 原文地址:https://www.cnblogs.com/GISerYang/p/3339172.html
Copyright © 2020-2023  润新知