Objective-C的类型和常量
id是一个指针类型,可以指向任何类型的对象。
BOOL 和char是一样的,但是作为布尔值使用,YES表示1,NO表示0.
IBOuttlet是个没有任何意义的宏,可以忽略。当interface Builder从.h文件中读取类定义时,这个宏会对其做出一个提示。
IBAction和void是一样的。
nil 表示一个objective-c对象,这个对象的指针指向空(没有东西就是空)。
Nil 定义一个指向空得类(是Class,而不是对象)。
NULL,是因为我们用来表示对象的指针为空。
#import和#include是一样的,但是#import可以确保引用的文件只被引用一次。
Objective-c语法快速参考
Cocoa是一大堆函数库,是已经写好的一堆现成的东西,知道怎么用就可以。
1.减号和加号 减号表示一个函数或者方法或者消息的开始。加号的意思就是其它函数可以直接调用这个类中的这个函数,而不用创建这个类的实例。
2.中括号 中括号可以认为是如何调用你刚才写的这个方法,通常在Objective-C里说“消息”。
3.NS****老乔公司的NextStep里面的规范。
4.多个参数的写法(方法的数据类型)函数名:(参数1数据类型)参数1的数值的名字 参数2的名字:(参数2数据类型)参数2值的名字。。。。;
5.@“”是把C的字符串转换成NSString的一个简写,@“”转换不支持中文。
retain和copy的区别
copy:建立一个索引计数为1的对象,然后释放旧对象。
retain:释放旧的对象,将旧的对象的值赋予输入对象,再提高输入对象的索引计数为1.
copy其实是建立了一个相同的对象,而retain不是。也就是说retain是指针拷贝,copy是内容拷贝。
NSUserDefaults 存储数组(无论存的为可变数组还是不可变数组,取出来后,一律变为不可变数组)
//判断该对象是否实现了MyChooseDayViewDelegate协议
if([myClassView conformToProtocol:@protocol (MyChooseDayViewDelegate)]){
//TODO: balabalabala...
}
//判断对象是否实现了某个方法就用我们经常会使用到的
if([myClassView responseToSelector:@selector(xxxx)]){
//TODO: balabalabala...
}