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的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发-OC篇-KVC详解

iOS开发网络篇 —— OC加载HTML代码

iOS开发-OC篇-单例模式

iOS开发——OC篇&纯代码退出键盘

iOS开发——语法OC篇&BOOL / bool / Boolean / NSCFBoolean四者区别

OC - NSDictionary 和 NSSet(集合)