iOS开发-OC篇-NSSet,NSNumber
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发-OC篇-NSSet,NSNumber相关的知识,希望对你有一定的参考价值。
最近回顾了OC的一些基本知识,发现确实遗忘了很多重要的东西,今天整理了一些小的知识点,和大家分享一下。
ios的集合对象不可以存储C语言基本类型,所有可以进行装箱和拆箱,来进行OC对象操作。
1、NSNumber包装类
1> 普通初始化
NSNumber * num1 = [[NSNumber alloc] initWithInt:20];
NSNumber * num2 = [NSNumber numberWithChar:‘a‘];
2>字面量初始化
NSNumber * num3 = @300;
NSNumber * num4 = @123.2;
NSNumber * num5 = @‘X‘;
3>变量初始化
int a = 29;
NSNumber * num5 = @(a);
4>NSNumber转基本数据类型
charValue,intValue,longValue,doubleValue
2、NSValue包装类
举例:
typedef struct {
int age;
char * name;
char sex;
} SPerson;
SPerson person;
person.name = "dahuan";
person.age = 10;
person.sex = ‘m‘;
//将一个结构体转换为NSValue对象,
//@encode(aType) 可以返回该类型的 C 字符串(char *)的表示
NSValue * value = [NSValue valueWithBytes:&person objCType:@encode(SPerson)];
SPerson person2;
//将一个NSValue对象转换为结构体
[value getValue:&person2];
NSLog(@"%s",person2.name);
NSLog(@"%d",person2.age);
NSLog(@"%c",person2.sex);
NSRange range = {12,2};
//常用结构体装箱
NSValue * rvalue =[NSValue valueWithRange:range];
//rangeValue将NSRange拆箱
NSLog(@"%@",NSStringFromRange([rvalue rangeValue]));
3、区分各种空值
nil是一个对象指针为空
Nil是一个类指针为空
NULL是基本数据类型为空。
NSNull空对象 是可以放在数组里的
4、NSSet用法
1> NSSet初始化
NSSet * set = [[NSSet alloc] initWithObjects:@"a",@"b",@"c", nil];
NSSet * set1 = [NSSet setWithObjects:@"z",@"x",@"c", nil];
NSSet * set2 = [NSSet setWithArray:array];
2> 获取NSSet中任意对象
[set2 anyObject]
3> 是否包含某对象
[set2 containsObject:@"w"]
4> 是否有相同元素
[set intersectsSet:set2]
5、NSMutableSet用法
1> NSMutableSet初始化
NSMutableSet * set = [[NSMutableSet alloc] initWithCapacity:0];
2> 追加删除和NSMutableArray一样
3> 取两个NSSet的并集
[set unionSet:set2]
4> NSSet减去一样的元素
[set minusSet:set2]
5> 取两个NSSet的交集
[set intersectSet:set2]
6、NSDictionary用法
1> NSDictionary初始化
NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2", nil];
NSDictionary * dict2 = [NSDictionary dictionaryWithObjects:@[@"value1",@"value2"] forKeys:@[@"key1",@"key2"]];
NSDictionary * dict3 = @{@"key1":@"value1",@"key2":@"value2”};//字面量形式
2> 通过key值获取value值
[dict3 objectForKey:@(2)] //key值可以是任意对象
[dict3 valueForKey:@"key2"] //key值只能是NSString
dict3[@"key2"] //字面量形式,建议使用
3> 获取字典中所有的key值
[dict3 allKeys]
4> 获取字典中所有的value值
[dict3 allValues]
以上是关于iOS开发-OC篇-NSSet,NSNumber的主要内容,如果未能解决你的问题,请参考以下文章