oc小结

这篇博客详细介绍了Objective-C中的数组、字典和集合的操作,包括不可变和可变对象的创建、访问、修改。重点讲解了字典的键值对存储、遍历方法,以及集合的元素唯一性、判断成员、集合运算等概念。
摘要由CSDN通过智能技术生成

数组:

1.复习不可变数组与可变数组的具体方法实现。

2.初级封装:

(1)数字封装,封装后还原成数字。

int a = 100;

NSNumber *num = [NSNumber numberWithInt:a];

(2)字符串封装,封装后还原字符串。

[int b = num intValue];

字典:

1.字典定义,初始化方法(需注意系统保存格式为key:value,但初始化顺序为value, key);

NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"One", @"1", @"Two", @"2", @"Three", @"3", nil];

   *字典中的元素是以键值对的形式存储的。

     键(key)  和      值(value)

     1                       One

     2                       Two

     3                       Three

   *字典可以粗浅的说为是以字符串为下标的数组

   *值(value)  键(key)

2.获取字典内value的方法;

例如我要获取第三个键值对,也就是key = 3;

NSLog(@"%@", [dict objectForKey:@"3"]);

3.字典内对象个数[dic count](dic为当前字典指针名称)

NSLog(@"%@", [dict count]);

4.把全部keys保存在一个数组中,遍历字典value;

NSArray *array = [dict allKeys];

NSLog(@"%@", array);

5.遍历字典时的语法糖:

NSLog(@"%@ : %@", key[i], dic[keys[i]]); = NSLog(@"%@ : %@", [keys objectAtIndex:i], [dic objectForKey:[keys objectAtIndex:i]]);

注意多练习后面的正式写法。

6.字典存取位置不是按照顺序排序,因此无法按照顺序输出字典,获取方法只能通过key查找value。需注意的是字典内不可以存在同名的key。

a)不可变字典(NSDictionary)

1.枚举法遍历字典(分别遍历value和key)

2.快速枚举法,找到想要的value

b)可变字典(NSMutableDictionary)

初始化:NSMutableDictionary *dict = [[NSMutabelDictionary alloc] init];

1.可变字典添加元素

[dict setObject:@"One" forKey@"1"];

2.可变字典删除指定键值对

[dict removeObjectForKey:@"2"];

3.可变字典删除所有键值对

[dict removeAllObjects];

集合:

1.集合的定义,初始化方法。(注意:集合当中的元素,每个只能有一个)

NSSet *set = [[NSSet alloc] initWithObjects:@"One", @"Two", @"Three", nil];

2.判断集合中是否存在某个对象;

判断One是否存在于集合中,若存在,输出contain,若不存在,输出not contain

if ([set containsObject:@"One"]){

        NSLog(@"contain");

} else {

        NSLog(@"not contain");

}

3.集合内对象个数[set count](set为当前集合指针名称)

[set count];

4.将集合内所有的对象添加到数组中,遍历输出数组。

NSArray *array = [set allObjects];

NSLog(@"%@", array);


a)不可变数组(NSSet)

1.集合的对象个数

[set count];

2.判断集合中是否存在某个对象

判断One是否存在于集合中,若存在,输出contain,若不存在,输出not contain

if ([set containsObject:@"One"]){

        NSLog(@"contain");

} else {

        NSLog(@"not contain");

}

3.判断连个集合是否相等,若相等,输出equal,若不相等,输出not equal

创建一个新的集合,命名为set2.

NSSet *set2 = [[NSSet alloc] initWithObjects:@"One", @"Two", @"Three", nil];

if ([set isEqual:set2]){

        NSLog(@"equal");

} else {

        NSLog(@"not equal");

}




4.判断第二个集合是否是第一个集合的子集合,判断一个集合是否是另一个集合的自己和,判断的时集合内的元素

if ([set2 isSubsetOfSet:set]){

       NSLog(@"yes");

} else {

     NSLog(@"no");

}

5.用数组创建集合

NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", @"Three", nil];

NSSet *set = [[NSSet alloc] initWithArray:array];

6.把集合内容取出来,生成一个数组

NSArray *array1 = [set allObjects];



b)可变数组(NSMutableSet)是NSSet的子集

NSMutableSet *set = [[NSMutableSet alloc] initWithObjects:@"One", @"Two", @"Three", @"Four", nil];

1.动态添加/删除元素

将Five这个元素添加到集合中

[set addObject:@"Five"];

2.将第二个集合的元素添加到第一个集合中

定义第二个集合(无论是可变集合还是不可变集合)

NSSet *set1 = [[NSSet alloc] initWithObjects:@"Five", @"Six", @"Seven", nil];

[set unionSet:set1];

3.在原集合中删除第二个集合中的所有元素,包括和第一个集合重复的元素

[set minusSet:set1];




NSIndexSet  指数集合/索引集合(NSIndexSet装得都是数字,是数字的集合)

a)不可变(NSIndexSet)

1.建立一个数组,从某个位置开始,输出到lenth长度的元素(NSRange);

NSIndexSet *indexset = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(2, 3)];

NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", @"Three", @"Four", @"Five", @"Six", @"Seven", nil];

NSArray *array1 = [array objectsAtIndexes:indexset];

NSLog(@"%@", array1);

b)可变(NSMutableINdexSet)

1.输出指定位置的数组的元素;

NSMutableIndexSet *indexset = [[NSMutableIndexSet alloc] init];

[indexset addIndex:0];

[indexset addIndex:3];

[indexset addIndex:5];

NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", @"Three", @"Four", @"Five", @"Six", @"Seven", nil];

NSArray *array1 = [array objectsAtIndexes.:indexset];

NSLog(@"%@", array1);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值