NSArray只能存放oc对象,并且有顺序的(下标有序)
不能存放非oc对象
他是不可变的,一旦初始化完毕后,他里面的内容就永远是固定的吗不能删除里面的元素,也不能添加
- #import <Foundation/Foundation.h>
- int main(int argc, const char * argv[]) {
- @autoreleasepool {
- //创建NSArray
- //+(instancetpe)array;
- NSArray *arr1=[NSArray array];
- //+(instancetpe)arrayWithObject:(id)anObject;
- NSArray *arr2=[NSArray arrayWithObject:@"abc"];
- //+(instancetpe)arrayWithObjects:(id)Object1,Object2...;
- NSArray *arr3=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
- NSLog(@"arr3=%@",arr3);
- //+(instancetpe)arrayWithArray:(NSArray *)array;
- NSArray *arr4=[NSArray arrayWithArray:arr2];
- //+(id)arrayWithContentsOfFile:(NSString *)path;//读取一个xml文件
- //+(id)arrayWithCoutentsOfUrl:(NSURL *)url;//读取一个url文件
- }
- return 0;
- }
复制代码
- #import <Foundation/Foundation.h>
- //NSArray 的常见用法
- void test(){
- //获取元素个数
- // -(NSUInteger)count;
- NSArray *ar=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
- NSLog(@"%ld",ar.count);
- //获取index位置的元素
- // -(id)objectAtIndex:(NSUInteger)index;
- NSArray *ar1=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
- id obj=[ar1 objectAtIndex:2];
- NSLog(@"%@",obj);
- //判断是否有某个对象
- // -(BOOL)containsObject:(id)anObject;
- NSArray *ar2=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
- if([ar2 containsObject:@"c"]){
- NSLog(@"有该元素");
- }
- //返回最后一个元素
- // -(id)lastObject;
- //返回第一个元素
- // -(id)firstObject;
- id obj1=[ar2 lastObject];
- NSLog(@"%@",obj1);
- id obj2=[ar2 firstObject];
- NSLog(@"%@",obj2);
-
- //查找anObject元素在数组中的位置
- // -(NSInteger)indexOfObject:(id)anObject;
- NSInteger a=[ar2 indexOfObject:@"c"];
- NSLog(@"%lu",a);
- //在range范围内查找anObject元素在数组中的位置
- // -(NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range;
- NSRange range={0,2};
- NSInteger b=[ar2 indexOfObject:@"b" inRange:range];
- NSLog(@"%lu",b);
- }
- int main(int argc, const char * argv[]) {
- @autoreleasepool {
- //简化方式录入数组元素
- NSArray *arr=@[@"1",@"2",@"3",@4];
- NSLog(@"%@",arr);
- //用简化方式访问数组元素
- id obj=arr[2];
- NSLog(@"%@",obj);
-
- }
- return 0;
- }
复制代码
- #import <Foundation/Foundation.h>
- int main(int argc, const char * argv[]) {
- @autoreleasepool {
- NSString *str=@"abcd";
- NSString *str1=@"dahj";
- NSString *str2=@"hhhha";
- //1.下标法
- NSArray *arr=@[str,str1,str2];
- for (int i=0; i<arr.count; i++) {
- NSLog(@"%@",arr[i]);
- }
- //2.直接打印
- NSLog(@"%@",arr);
- //3.快速枚举法,for循环增强
- for (NSString * s in arr) {
- NSLog(@"%@",s);
- }
- //4.使用block方式访问
- // 数组元素 元素下标 是否停止
- [arr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * stop) {
- if (idx==2) {
- *stop=YES;//break;
- }else{
- NSLog(@"idx=%ld,obj=%@",idx,obj);
- }
- }];
-
- }
- return 0;
- }
复制代码
|
|