-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathconstant.ios.txt
79 lines (51 loc) · 3.46 KB
/
constant.ios.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
常用常量值:
布尔:
BOOL:OC 中的类型,值为真值常量YES(非0),假值常量NO(0),OC 中的if,while 都可以使用BOOL类型(和C中的有什么区别?(真值常量不同吗?))
并非基本类型,是无符号char的一个tyoedef(别名)
tips:C直到C99标准才增加了对布尔类型的支持,关键字_Bool,也被用在Core Foundation框架中
C:_Bool
C++:bool
OC:BOOL
#import
和C中的#include相似,但#import不会导致重复引入头文件
.m
OC 中包含实际代码的文件拓展名为.m ,m是模块的意思
Cocoa:
Cocoa中的Foundation框架定义了一些基础类,如字符串,数值管理,容器,文件系统等,在Mac OS X 和iOS 中都可以使用
文件结构:
每个类都会分成.h和.m文件
.h 文件名为“类名.h” 内容为类的接口部分
.m 文件名为“类名.m” 内容为类的实现部分
接口文件起到了头文件作用,使用某个类时都要包含该类的接口文件,类实现文件中也要包含接口文件
消息表达式是 OC 特有的用法,无法使用C语言编译,所以拓展名必须保存为.m 以标示是OC程序,
使编译器能够通过拓展名区分出要编译的文件是 C,C++还是OC文件
只有只包含C代码的文件可以被声明为.c文件,否则C编译器无法识别
编译指令:
%clang 类名.m -framework Foundation // %clang 编译器,-framework 标示使用了Foundation框架中的内容(动态库)
% ./a.out 成功后会生成可执行程序
-o 选项指定生成的可执行文件名
-Wmost 或 -Wall 将隐藏的warning 显示出来
编译子类时需要连同父类一起编译和链接,否则无法使用父类中定义的方法。
编译其他相关见《Objective-C编程全解》 P23,P25,P37
nil:
表示一个空对象,指针指向空,类型为指向id类型指针,值为0,初始化失败的时候通常会返回nil。
新生成一个实例变量的时候,alloc方法会吧数值烈性的实例变量初始化为0,id及其他类型的指针变量会初始化为nil。
返回值为id类型的方法中,处理出错一般也会返回nil,可以依次判断是否调用成功。
也可以类似C中将NULL当做0 使用,判断语句中可以省略"!=nil"
给nil变量发送消息时,运行时不会有任何反应,消息不会被发送。
向nil发送消息,返回值:
消息对应方法的返回值类型:对象——nil;
指针——NULL;
整数——0;
其他(结构体或实数等)——未定义。
id:
id类型和其他类之间并没有继承关系,更多请参考头文件/usr/include/objc/objc.h
static:
定义静态变量的语句只会执行一次
const:
没加const修饰符的指针不能指向加了const修饰的对象,加了const的指针常量不能改变其指向的内容,当其指向一个没加const修饰符的普通数组时,也不能修改其所指向的内容
在一定程度上可以提高程序的安全性和可靠性
个人总结:只要跟const有关系,什么都不能改
《Objective-c编程全解》 P79
@Nike:
字符串常量的表示方式