@dynamic 意思是由开发人员提供相应的代码:对于只读属性需要提供 setter,对于读写属性需要提供 setter 和 getter。
@synthesize 意思是,除非开发人员已经做了,否则由编译器生成相应的代码,以满足属性声明。
[对象名 方法名]是消息发送,是向对象发送一条消息,消息在运行期间而非编译期间得到解析,因而即使你的方法名是错的,编译器也不会报错,而停止程序运行的原因是对象没有响音对应的消息,仅仅是忽略了改消息。
对象名-》方法名是调用方法。
@property (参数1,参数2)类型 名字;
如:@property(nonatomic ,retain) UIWindow *window;
参数分为三类:
1)读写属性(readonly/readwrite)
2)setter语意(assign(默认的值,setter方法仅仅只是赋值,不释放旧址)/retain(释放旧址,赋值)/copy(在进行复制操作是和retain一样)

3)原子行(atomicity(原子的)/nonatomic(禁止多线程,变量保护))
delegate:(委托机制)
 事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互(例如鼠标单击)引起的,也可能是由某些其他的程序逻辑触发的。引发事件的对象称为事件发送方。捕获事件并对其作出响应的对象叫做事件接收方。
    在事件通信中,事件发送方类不知道哪个对象或方法将接收到(处理)它引发的事件。所需要的是在源和接收方之间存在一个媒介(或类似指针的机制)。中间的这个媒介解释delegate,

你可以理解 @selector()就是取类方法的编号,他的行为基本可以等同C语言的中函数指针,只不过C语言中,可以把函数名直接赋给一个函数指针,而Object-C的类不能直接应用函数指针,这样只能做一个@selector语法来取.
它的结果是一个SEL类型。这个类型本质是类方法的编号(函数地址)?

执行selector值
  SEL变量的执行.用performSelecor方法来执行.
   [对象 performSelector:SEL变量 withObject:参数1 withObject:参数2];

3.selector的应用场合
   selector本质是跟C的回调函数一样主要用于两个对象之间进行松耦合的通讯.。

 

Reference:http://blog.sina.com.cn/s/blog_a0948fb801017n3t.html

posted on 2013-06-17 18:04  noname000  阅读(111)  评论(0)    收藏  举报