一、数组
Foundation框架中,数是有序的对象的集合。
C语言数组只能存放同种数据类型的元素。
OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等 。
也存在可变数组和不可变数组之分,可变数组是不可变数组的子类。
取值方式: 下标
(一)NSArray 不可变数组
(1)NSArray的创建
a. 快速创建一个NSArray对象
<span style="font-size:18px;">NSArray *array = @[@"1444"];</span>
b.初始化
- (id)initWithObjects:(id)firstObject,...
(2)NSArray的遍历
for循环遍历 (forin )快速遍历
(3)排序
// 对数组进行排序
NSArray *array = [[NSArray alloc] initWithObjects:@"7", @"8", @"3", @"9", nil];
// SEL类型,代表一个方法选择器
// 选择一个字符串比较的方法, 括号中写一个方法的方法名
SEL selector = @selector(compare:);
NSArray *sortedArr = [array sortedArrayUsingSelector:selector];
(二)可变数组NSMutableArray
注意:NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法
基本使用:
(1)初始化:
- (instancetype)initWithCapacity:(NSUInteger)numItems
+ (instancetype)arrayWithCapacity:(NSUInteger)numItems;
(2)增加对象(在数组末尾增加一个对象)
- (void)addObject:(id)anObject;
(3)删除对象
删除指定索引位置的对象
- (void)removeObjectAtIndex:(NSUInteger)index;
删除全部对象
- (void)removeAllObjects;
(4)更改某个位置的对象
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
二、字典(NSDictionary)
(一)NSDictionary 不可变字典
OC中的NSDictionary:根据key找到value。里面存储的东西都是键值对。
(1)创建字典
// 创建一个字典
NSDictionary *diction = [[NSDictionary alloc] initWithObjectsAndKeys:@"q", @"name", @"m", @"sex", @"22", @"age", nil];
快速创建
<span style="font-size:18px;"> NSDictionary *dic6 = @{@"name":@"天天",@"age":@"456"};</span>
注意:这种快速创建的方式只适用于不可变字典。
(2)对字典的快速枚举
NSArray *keys = [dic allKeys];
for (NSString *key in keys) {
NSString *object = dic[key];// dic[key]快速访问
NSLog(@"%@,%@",key,object);
}
(3)从key获得Value
- (id)objectForKey:(id)aKey;
(二)可变字典NSMutableDictionary
(1)增加和修改可变字典的内容
- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
(2)删除可变字典的内容
- (void)removeObjectForKey:(id)aKey;
// 字典使用中注意的事项
(1)字典中,key是唯一个,value可以相同,
(2)字典中key一般用NSString 或者NSNumber类型,而只可以是任意类型
(3)值对象不能唯空;
三、集合(无序)
(一)NSSet 不可变集合
不能存放相同的对象,是一组单值对象的集合,内部元素是无序的。
(1)创建
// 集合
// 1. 不能重复
// 2. 没有顺序
// 3. 随便取值
// 4. 必须是对象类型
NSSet *set = [[NSSet alloc] initWithObjects:@"458", @"xiabinshan", @"1", @"3", @"5", nil];
(2)取值
// 在集合中取值
NSString *setObject = [set anyObject];
// 集合是否包含某个对象
BOOL condition = [set containsObject:@"图图图退"];
(二)可变集合NSMutableSet
(1)初始化方法
<span style="font-size:18px;"><span style="font-family:Menlo;color:#00b1ff;"><span style="font-size: 18px;"> </span></span> NSMutableSet *mutableSet = [[NSMutableSet alloc] initWithCapacity:1];// 也可以用不可变集合的赋值方法</span>
// set = [set setByAddingObjectsFromSet:mutableSet];
(2)增加对象
[mutableSet addObject:@"6"];
(3)删除对象
[mutableSet removeObject:@"8"];