1.学生有性别,男或女,那么我们用NS_ENUM来描述性别 2.学生可以选课,也可以取消选课,那么选课我们就用NS_OPTIONS来描述选课 1. NS_OPTIONS一般定义为NSUInteger,也就是long类型,存储方式为 0000 0000 0000 0001 //课程类型 typedef NS_OPTIONS(NSInteger, LessonOptions) { LessonOptionsCsharp =1<<0, //0000...
NSNumber是更具体的包装类,主要用于包装C语言的各种数值类型,NSNumber主要包括3类方法: + numberWithXxx:该类方法直接将特定类型的值包装成NSNumber。 - initWithXxx:该实例方法需要先创建一个NSNumber对象,再用一个基本类型来初始化NSNumber。 - xxxValue:该实例方法返回该NSNumber对象包装的基本类型的值。 10、...
NS_ENUM是一个OC中的宏,可以判断编译器能否采用新式枚举:如果不能,那么效果等同于仅仅使用typedef的enum;如果能够采用新式枚举,那么NS_ENUM所定义的枚举类型,就是处理后的enum类型,可以在使用typedef的同时,指定底层数据类型。 比如: typedefNS_ENUM(NSInteger,FlyState){FlyStateOne,FlyStateTwo,FlyStateThree}; 如...
NSValue是NSNumber的父类,NSValue代表一个更通用的包装类,它可以用于单个的short、int、float、char、指针、对象id等数据项,通过该包装类就可以把short、int、float、char、指针等添加到NSArray、NSSet等集合(集合的元素必须为对象)中。 NSNumber是更具体的包装类,主要用于包装C语言的各种数值类型,NSNumber主要包括3...
oc中的枚举定义 typedef NS_ENUM(类型,枚举名){ 枚举名+值名, 枚举名+值名, }; 该方法定义的枚举,OC会自动把其转换成合适当前版本的枚举。 如果枚举值可合并的话 NS_ENUM 要改成NS_OPTIONS,枚举值默认为0-n也可通过在值名后加入=number方式自定义。
/ NSMutableDictionary 是NSDictionary的子类,所以继承了NSDictionary的方法。 //创建可变字典 NSMutableDictionary*dict=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three",@"4", @"four", nil]; NSMutableDictionary*dict1 =[NSMutableDictionary dictionaryWith...
在iOS6和Mac OS 10.8以后Apple引入了两个宏来重新定义这两个枚举类型,实际上是将enum定义和typedef合二为一,并且采用不同的宏来从代码角度来区分。 NS_ENUM是通用情况,NS_OPTIONS一般用来定义具有位移操作或特点的情况。 typedef NS_ENUM(NSInteger, UIViewAnimationTransition) { ...
4 //删除字典的键值对 [mDic1 removeObjectForKey:@"1"];5 //枚举器进行遍历字典 NSEnumerator *enum1 = [mDic1 objectEnumerator]; //复习NSMutableString NSMutableString *mStr = [[NSMutableString alloc]init]; id str; while (str = [enum1 nextObject]) { [mStr appendString...
typedef NS_ENUM(NSInteger, Weekday) { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; 在上面的代码中,我们使用了"typedef"关键字定义了一个名为Weekday的枚举类型。枚举类型的值从0开始递增,依次对应Monday、Tuesday、Wednesday等。 接下来,我们将介绍如何将枚举类型转换为其他数据类型。首先...
在switch中使用枚举来定义状态机,最好不要用default,如果使用default,当枚举中添加一个值,编译器不会发出警告,但是switch中不加default,编译器会有警告提示信息 代码语言:javascript 复制 typedefNS_ENUM(NSInteger,LoginState){LoginStateSuccess,LoginStateFail,};-(void)change:(LoginState)state{switch(state){case...