OC特点:
- ObjC中没有命名空间(C#)或包(Java)的概念,那也就是说在同一个应用中不能同时存在两个完全相同的类名,通常情况下我们通过前缀加以区分,例如在ObjC中的NSString、NSLog中的NS就是前缀
- ObjC中很多关键字都是以@开头(例如@autoreleasepool、@interface、@protocol),另外需要注意的是为了区分C语言中的字符串,ObjC中的字符串也必须加上@
基础数据类型
char a='a';
int b=1;
float c=8.5;
double d=8.5e+12;
char e='a';
BOOL f=YES,g=NO;
id=object; //是一个对象类型,可以表示所有对象
NSString = @"test"; //Fundation框架中定义的字符串类型
NSLog(@"a=%c,b=%i,c=%f,d=%f,e=%c,f=%i,g=%i",a,b,c,d,e,f,g);
//结果:a=a,b=1,c=8.500000,d=8500000000000.000000,e=a,f=1,g=0
NSString *str=@"Hello,World!";
NSLog(@"str=%@",str); //结果:str=Hello,World!
NSLog(@"object=%p",nil);//结果:object=0x0
枚举
普通类型
enum IssueStateTypes {
IssueStateOpen,
IssueStateClosed,
IssueStateNotDetermined
};
enum IssueStateTypes IssueState;
// 赋值
IssueState = IssueStateOpen;
typedef 类型
## typedef enum
typedef enum IssueStateTypes {
IssueStateOpen,
IssueStateClosed,
IssueStateNotDetermined
} IssueStateTypes;
// 和下面效果一致。
enum IssueStateTypes {
IssueStateOpen,
IssueStateClosed,
IssueStateNotDetermined
};
typedef IssueStateTypes IssueStateTypes;
apple 推荐类型NS_ENUM、 NS_OPTIONS
typedef NS_ENUM (NSInteger, IssueStateTypes) {
IssueStateOpen,
IssueStateClosed,
IssueStateNotDetermined
};
// 赋值
IssueStateTypes IssueState = IssueStateNotDetermined;
- 一篇文章学会typedef enum、NS_ENUM、NS_OPTIONS和移位1 << 0 https://www.jianshu.com/p/dc26d719cc03
网友评论