1.OC中@符号用法
OC中一般使用@格式化字符串,如NSString * string = @"str1";
是将C的字符串转化为OC中的字符串对象
2.OC中源文件和C++中源文件的区别
OC中源文件以:.m (OC源文件).mm(OC++)的源文件
C++中以:.cc .cpp结尾
3.OC中BOOL类型
BOOL类型其实是由一种称为预处理程序的机制添加的。
typedef signed char BOOL;
BOOL类型有两个值YES,NO。YES=1,NO=0。
objective-c 中的BOOL 实际上是一种对带符号的字符类型(signed char)的类型定义(typedef),它使用8位的存储空间。通过#define指令把YES定义为1,NO定义为0。
如果不小心将一个大于1字节的整型值(比如short或int)赋给一个BOOL变量,那么只有低位字节会用作BOOL值。如果该低位字节刚好为0(比如8960,写成十六进制为0x2300),BOOL值将会被认作是0,即NO值。而对于bool类型,只有true和false的区别,即0 为false,非0为true。bool类型变量就当变量的值是非0就返回1,等于0就返回0.
4.#pragma mark指令的使用
#pragma mark是对代码进行分组方便查找和导航使用
如:#pragma mark Crad类使用方法
5.使用NSLog不能打印C的字符串
char *str = "test1";
NSLog(@"%s",str);
6.函数和对象方法的区别
对象方法:-(void) run;
(1)对象的实现只能写在@implementation....@end中,对象的方法说明只能写在@interface ...@end中
(2)对象方法以- 开头,类方法以+开头
(3)对象方法只能由对象来调用,类方法只能由类调用,不能当作函数调用
(4)函数属于整个文件,可以写在文件中的任何位置,包括@implementation....@end中,但写在@interface ...@end中无法识别,函数的声明可以在main函数内部,也可以在函数的外部
(5)对象方法归类\对象所有
函数:void run(){}
(1)所有的函数都是平行的
(2)函数不存在隶属关系,使用的时候可以直接调用
(3)因为存在的作用域不一样,不可以访问对象中的成员变量