首页 > 代码库 > OC 数组方法介绍
OC 数组方法介绍
NSArray 是不可变的数组,只能够存放对象,但是可以存放不同类型的对象
首先定义一个类
#import <Foundation/Foundation.h>@interface Person : NSObject@property NSString *name;- (id)initWithName:(NSString *)name;@end
#import "Person.h"@implementation Person- (id)initWithName:(NSString *)name { if (self =[super init]) { _name = name; } return self;}@end
数组的初始化
//创建数组几种形式 NSArray *array = [[NSArray alloc] initWithObjects:p1, @"NSString",@13,nil];//创建一个不可改变的数组 包括多个对象 array = [NSArray arrayWithObjects:p1, @"NSString",@13,nil]; //工程模式创建(便利构造器)建议用这样方式创建(不需要管理内存) NSLog(@"%@",array); id ch[4]= {@"AAA",@"BBB",@"CC",@"DDD"}; NSArray *array1 = [[NSArray alloc] initWithObjects:ch count:4];//由一个数组创建 array1 = [NSArray arrayWithObjects:ch count:4];//工厂模式 NSLog(@"%@",array1); NSArray *array2 = [[NSArray alloc] init];//不可变的空数组 array2 = [NSArray array]; NSLog(@"%@",array2); array1 = [NSArray arrayWithObject:@"ABC"];//创建一个对象的不可变数组
数组的常用方法测试
//获取数组长度 NSInteger length = [array count]; NSLog(@"%ld",length); //获取数组中的对象 id obj = [array objectAtIndex:0]; NSLog(@"%@", obj); //也可以用下面这种语法 obj = array[0]; NSLog(@"%@", obj); //获取对象在数组中的位置 NSInteger index = [array indexOfObject:@13]; NSLog(@"%lu", index); //遍历数组 //1常规方式 for (int i = 0; i < [array count]; i++) { NSLog(@"%@",array[i]); } //2快速遍历 for(id obj in array){ NSLog(@"%@",obj); } //将数组转换为字符串 NSArray *pathArray = [NSArray arrayWithObjects:@"here", @"be", @"dragons", p1, @13,nil]; NSLog(@"%@",[pathArray componentsJoinedByString:@"-"]); //数组比较 NSArray *arrayEqual1 = [NSArray arrayWithObjects:@"here", @"be", @"dragons", p1, @13,nil]; NSArray *arrayEqual2 = [NSArray arrayWithObjects:@"here1", @"be", @"dragons", p1, @13,nil]; NSLog(@"%hhd",[arrayEqual1 isEqualToArray:arrayEqual2]);//结果为0(NO) NSLog(@"%hhd",[arrayEqual1 isEqualToArray:arrayEqual1]);//1(YES) //数组的排序 NSArray *arrSort = @[@"AAA", @"HHH",@"BBB"]; //运用selector arrSort = [arrSort sortedArrayUsingSelector:@selector(compare:)]; NSLog(@"%@",arrSort); //运用block arrSort = [arrSort sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { return -[(NSString *)obj1 compare:(NSString *)obj2];//倒序 }]; NSLog(@"%@",arrSort);
OC 数组方法介绍
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。