黑马程序员技术交流社区
标题:
NSArray常见用法
[打印本页]
作者:
vyqrvwgf
时间:
2015-11-5 13:13
标题:
NSArray常见用法
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;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2