//統稱為集合類,都是用來打包對象的
NSArray 數組 NSDictionary 字典 NSSet 集合
能夠做什麼:
1:添加,删除,插入,取出
2:建立
3:周遊集合
4:排序
對于NSArray(數組中存儲的實際上是對象的指針位址)
》1:建立集合,NSArray是不可變數組,一旦建立完成就不能夠對數組進行删除、添加等操作
NSArray *array = [[NSArray alloc]init];
NSLog(@"%@",array); // 列印為 ()
》2:通過構造方法的方式建立一個NSArray,在建立一個NSArray的時候,集合的最後一個元素一定是nil
NSArray *array1 = [[NSArray arrayWithObjects:@"one",@"two",@"three",nil];
NSLog(@"%@",array); // 列印為 (one, two,three)
》3:數組中可以存儲不同類型的對象
NSNumber *number = [NSNumber numberWithInt:10];
NSArray *array2 = [[NSArray alloc]initWithObjects:@"one",@"two",number,nil];
NSLog(@"%@",array); // 列印為 (one, two,10)
》4:數組實際上存儲的是對象的位址,同樣也可以存儲數組的位址
NSArray *a1 = [[NSArray alloc]initWithObjects:@"one",@"two",@"three",nil];
NSArray *a2 = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",nil];
NSArray *a3 = [[NSArray alloc]initWithObjects:a1,a2,nil];
NSLog(@"%@",a3); // 列印為 ((one, two,three),(1,2,3))
》5:存儲自定義的對象,最好都重寫description方法
先建立一個繼承自NSObject 的類Person
在Person.m中
-(id)initWithName:(NSString *)name andAge:(int)age
{
if(self = [super init])
{
_name = name;
_age = age;
}
return self;
}
-(NSString *)description
{
return [NSString stringWithFormat:@"age= %d, name = %@",_age,_name);
}
#import "Person.h" 之後
Person *p1 = [[Person alloc]initWithName:@"zhong" andAge:22];
Person *p2 = [[Person alloc]initWithName:@"lili" andAge:20];
Person *p3 = [[Person alloc]initWithName:@"meiz" andAge:30];
NSArray *array = [[NSArray alloc]initWithObjects:p1,p2,p3,nil];
NSLog(@"%@",array]; //結果為 ( " age=22,name=zhong"," age=20,name=lili"," age=30,name=meiz")
》6:數組中存儲基本資料類型,應将基本資料類型包裝好之後再存儲。
注:不要把nil值存儲到NSArray中,會導緻資料丢失
NSString *str = nil;
NSArray *array = [[NSArray alloc]initWithObject :@"2",str,[NSNumber numberWithInt:4],nil];
》7:建立數組的快捷方式
NSArray *karray = @[@"b",@"c",@"d"];
》8:快速獲得一個數組中的元素
NSString *kstr = karray[0];
NSLog(@"%@",kstr];
》9:從集合中取出資料
NSArray *array = [[NSArray alloc]initWithObjects:@"one",@"two",number,nil];
NSString *str = [array objectAtIndex:0]; //數組的index是從0開始的
》10:獲得數組的元素個數
NSUInteger arrayCount = [array count];
NSLog(@" %d" ,arrayCount); // 3
》11:判斷數組中是否存在某個對象 Person *p1 = [[Person alloc]initWithName:@"zhong" andAge:22];
Person *p2 = [[Person alloc]initWithName:@"y" andAge:22];
NSArray *array = @[p1,p2];
BOOL isContain = [array containsObject:p1];
if(isContain)
{
NSLog(@“存在”);
}
else{
NSLog(@“不存在”);
}