A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© vyqrvwgf 中级黑马   /  2015-11-5 13:13  /  551 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

NSArray只能存放oc对象,并且有顺序的(下标有序)
不能存放非oc对象
他是不可变的,一旦初始化完毕后,他里面的内容就永远是固定的吗不能删除里面的元素,也不能添加


  1. #import <Foundation/Foundation.h>

  2. int main(int argc, const char * argv[]) {
  3.     @autoreleasepool {
  4.     //创建NSArray
  5.     //+(instancetpe)array;
  6.         NSArray *arr1=[NSArray array];
  7.     //+(instancetpe)arrayWithObject:(id)anObject;
  8.         NSArray *arr2=[NSArray arrayWithObject:@"abc"];
  9.     //+(instancetpe)arrayWithObjects:(id)Object1,Object2...;
  10.         NSArray *arr3=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
  11.         NSLog(@"arr3=%@",arr3);
  12.     //+(instancetpe)arrayWithArray:(NSArray *)array;
  13.         NSArray *arr4=[NSArray arrayWithArray:arr2];
  14.     //+(id)arrayWithContentsOfFile:(NSString *)path;//读取一个xml文件
  15.     //+(id)arrayWithCoutentsOfUrl:(NSURL *)url;//读取一个url文件
  16.     }
  17.     return 0;
  18. }
复制代码

  1. #import <Foundation/Foundation.h>
  2. //NSArray 的常见用法
  3. void test(){
  4.     //获取元素个数
  5.     //        -(NSUInteger)count;
  6.     NSArray *ar=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
  7.     NSLog(@"%ld",ar.count);
  8.     //获取index位置的元素
  9.     //        -(id)objectAtIndex:(NSUInteger)index;
  10.     NSArray *ar1=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
  11.     id obj=[ar1 objectAtIndex:2];
  12.     NSLog(@"%@",obj);
  13.     //判断是否有某个对象
  14.     //        -(BOOL)containsObject:(id)anObject;
  15.     NSArray *ar2=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
  16.     if([ar2 containsObject:@"c"]){
  17.         NSLog(@"有该元素");
  18.     }
  19.     //返回最后一个元素
  20.     //        -(id)lastObject;
  21.     //返回第一个元素
  22.     //        -(id)firstObject;
  23.     id obj1=[ar2 lastObject];
  24.     NSLog(@"%@",obj1);
  25.     id obj2=[ar2 firstObject];
  26.     NSLog(@"%@",obj2);
  27.    
  28.     //查找anObject元素在数组中的位置
  29.     //        -(NSInteger)indexOfObject:(id)anObject;
  30.     NSInteger a=[ar2 indexOfObject:@"c"];
  31.     NSLog(@"%lu",a);
  32.     //在range范围内查找anObject元素在数组中的位置
  33.     //        -(NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range;
  34.     NSRange range={0,2};
  35.     NSInteger b=[ar2 indexOfObject:@"b" inRange:range];
  36.     NSLog(@"%lu",b);
  37. }
  38. int main(int argc, const char * argv[]) {
  39.     @autoreleasepool {
  40.         //简化方式录入数组元素
  41.         NSArray *arr=@[@"1",@"2",@"3",@4];
  42.         NSLog(@"%@",arr);
  43.         //用简化方式访问数组元素
  44.         id obj=arr[2];
  45.         NSLog(@"%@",obj);
  46.         
  47.     }
  48.     return 0;
  49. }
复制代码

  1. #import <Foundation/Foundation.h>

  2. int main(int argc, const char * argv[]) {
  3.     @autoreleasepool {
  4.         NSString *str=@"abcd";
  5.         NSString *str1=@"dahj";
  6.         NSString *str2=@"hhhha";
  7.         //1.下标法
  8.         NSArray *arr=@[str,str1,str2];
  9.         for (int i=0; i<arr.count; i++) {
  10.             NSLog(@"%@",arr[i]);
  11.         }
  12.         //2.直接打印
  13.         NSLog(@"%@",arr);
  14.         //3.快速枚举法,for循环增强
  15.         for (NSString * s in arr) {
  16.             NSLog(@"%@",s);
  17.         }
  18.         //4.使用block方式访问
  19.         //                                   数组元素             元素下标        是否停止
  20.         [arr enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL *  stop) {
  21.             if (idx==2) {
  22.                 *stop=YES;//break;
  23.             }else{
  24.                 NSLog(@"idx=%ld,obj=%@",idx,obj);
  25.             }
  26.         }];
  27.         
  28.     }
  29.     return 0;
  30. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马