黑马程序员——Foundation框架—NSArray

来源:互联网 发布:ubuntu全中文包 编辑:程序博客网 时间:2024/05/20 06:39

 ——- android培训、java培训、期待与您交流! ———-

1、NSArray的基本介绍

  • 1)什么是NSArray?
    NSArray是OC中的数组类, 开发中建议尽量使用NSArray替代C语言中的数组

    • C语言中数组的弊端
      int array[4] = {10, 89, 27, 76};
      只能存放一种类型的数据.(类型必须一致)
      不能很方便地动态添加数组元素、不能很方便地动态删除数组元素(长度固定)
  • 2)NSArray的使用注意
    1、只能存放任意OC对象, 并且是有顺序的
    2、不能存储非OC对象, 比如int\float\double\char\enum\struct等
    3、它是不可变的, 一旦初始化完毕后, 它里面的内容就永远是固定的, 不能删除里面的元素, 也不能再往里面添加元素

2、NSArray创建

NSArray的创建方式

    + (instancetype)array;    + (instancetype)arrayWithObject:(id)anObject;    + (instancetype)arrayWithObjects:(id)firstObj, ...;    + (instancetype)arrayWithArray:(NSArray *)array;    + (id)arrayWithContentsOfFile:(NSString *)path;        //读取一个xml文件.    + (id)arrayWithContentsOfURL:(NSURL *)url;        // 读取一个xml文件

2、NSArray的方法使用

#import <Foundation/Foundation.h>  int main(int argc, const char * argv[])  {      @autoreleasepool {          //类方法数组创建          NSArray *array1 = [NSArray arrayWithObject:@"obj"];          NSArray *array2 = [NSArray arrayWithObjects:@"obj1", @"obj2", @"obj3", nil];          NSArray *array3 = [NSArray arrayWithArray:array2];          NSLog(@"array1 :%@", array1);          NSLog(@"array2 :%@", array2);          NSLog(@"array3 :%@", array3);          //实例方法创建数组          NSArray *array4 = [[NSArray alloc] initWithObjects:@"AAA", @"bbb", nil];          NSLog(@"array4 :%@", array4);          //数组个数          NSLog(@"array3 count :%d", [array3 count]);          //访问元素          NSLog(@"obj at index :%@", [array2 objectAtIndex:2]);          //追加(返回新的array对象)          NSArray *array5 = [array3 arrayByAddingObject:@"ccc"];          NSLog(@"array5 :%@", array5);          //根据指定的字符串连接数组元素          NSString *joinString1 = [array5 componentsJoinedByString:@"|"];          NSLog(@"joinString :%@",joinString1);          //是否包含指定对象          NSLog(@"isContains :%d", [array5 containsObject:@"obj2"]);          //查找某个对象所在索引          NSLog(@"indexOfObject :%d",[array5 indexOfObject:@"obj3"]);          //最后一个元素          NSLog(@"lastObejct :%@", [array5 lastObject]);          //遍历数组          for (id element in array5) {              NSLog(@"element :%@", element);          }          //可变数组(期望容量设置为3)          NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:3];          //直接添加          [mutableArray addObject:@"aaa"];          [mutableArray addObject:@"eee"];          [mutableArray addObject:@"000"];          NSLog(@"addObject :%@", mutableArray);          //插入元素          [mutableArray insertObject:@"ccc" atIndex:0];          NSLog(@"insertObject :%@", mutableArray);          //移除指定元素          [mutableArray removeObject:@"ccc"];          NSLog(@"removeObject :%@", mutableArray);          //移除指定下标元素          [mutableArray removeObjectAtIndex:0];          NSLog(@"removeObjectAtIndex :%@", mutableArray);          //移除最后一个元素          [mutableArray removeLastObject];          NSLog(@"removeLastObject :%@", mutableArray);          //添加数组          [mutableArray addObjectsFromArray:array5];          NSLog(@"addObjectsFromArray :%@", mutableArray);          //移除指定数组中的内容          [mutableArray removeObjectsInArray:array2];          NSLog(@"removeObjectsInArray :%@", mutableArray);          //指定索引替换对象          [mutableArray replaceObjectAtIndex:0 withObject:@"==="];          NSLog(@"replaceObjectAtIndex :%@", mutableArray);          //删除全部对象          [mutableArray removeAllObjects];          NSLog(@"removeAllObjects :%@", mutableArray);      }      return 0;  }  
0 0
原创粉丝点击