iOS Delegate NSNotificationCenter
2012-04-12 00:13
260 查看
----------------------------------------------------------------------------------Delegate----------------------------------------------------------------------------------------
1:声明代理
2:封装代理
3:类实现中 实例化代理
6:在声明代理所需要实现的方法前 加 @optional表示该方法可选.接管者不实现也没有关系.
7:在声明代理所需要实现的方法前 加 @required(默认)表示该方法必需实现,接管者如果不实现,XCode编辑器将会提出警告.如下图所示:
8:使用Delegate进行开发时要注意如下两点
1:如果你是编写静态库給別人用时,记得把你的delegate設成(assign) property,這樣才不會造成内容泄漏,空指针引用
2:当你是要始用別人的library,記得在你自己dealloc的時候,把delegate設成nil,以避免crash的事情發生。
3:但是很興奮的是到了iOS5中的Automatic Reference Counting這個問題可以有所改善。
在ARC中提出了一個新的weak reference的概念來取代原本的assign,
weak reference指到的物件若是已經因retain count歸零而dealloc了,則此weak reference也自動設成nil。
而原本舊的這種assign的作法,在ARC中叫做__unsafe_unretained,這只是為了相容iOS4以下的版本。
iOS Delegate 你必须要知道的事情
本博文很形象的解释了Delegate 开发模式原理:
http://blog.csdn.net/volcan1987/article/details/6668683
----------------------------------------------------------------------------------Delegate----------------------------------------------------------------------------------------
[b]-------------------------------------------------------------------------NSNotificationCenter-------------------------------------------------------------------------------
[/b]
1:通知中心注册消息
2:通知中心触发消息
3:删除消息
-------------------------------------------------------------------------NSNotificationCenter-------------------------------------------------------------------------------
1:声明代理
@protocol UICustomHTMLEditorDelegate <NSObject> - (void)getHTMLContent:(NSString *)content; //声明代理中需要实现的方法 @end
2:封装代理
@property (assign,nonatomic) id<UICustomHTMLEditorDelegate> delegate;
3:类实现中 实例化代理
@synthesize delegate;4:判断代理中是否实现了指定的方法 实现返回 true 没实现返回false
[self.delegate respondsToSelector:@selector(getHTMLContent:)]5:指定代理的接管者,那么代理要求的实现方法接管者必须实现,不然会出现警告
customerHTMLEditor.delegate = self;
6:在声明代理所需要实现的方法前 加 @optional表示该方法可选.接管者不实现也没有关系.
7:在声明代理所需要实现的方法前 加 @required(默认)表示该方法必需实现,接管者如果不实现,XCode编辑器将会提出警告.如下图所示:
8:使用Delegate进行开发时要注意如下两点
1:如果你是编写静态库給別人用时,记得把你的delegate設成(assign) property,這樣才不會造成内容泄漏,空指针引用
2:当你是要始用別人的library,記得在你自己dealloc的時候,把delegate設成nil,以避免crash的事情發生。
3:但是很興奮的是到了iOS5中的Automatic Reference Counting這個問題可以有所改善。
在ARC中提出了一個新的weak reference的概念來取代原本的assign,
weak reference指到的物件若是已經因retain count歸零而dealloc了,則此weak reference也自動設成nil。
而原本舊的這種assign的作法,在ARC中叫做__unsafe_unretained,這只是為了相容iOS4以下的版本。
iOS Delegate 你必须要知道的事情
本博文很形象的解释了Delegate 开发模式原理:
http://blog.csdn.net/volcan1987/article/details/6668683
----------------------------------------------------------------------------------Delegate----------------------------------------------------------------------------------------
[b]-------------------------------------------------------------------------NSNotificationCenter-------------------------------------------------------------------------------
[/b]
1:通知中心注册消息
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(FE_backRootViewController) name:FE_NOTI_BACK_ROOTVIEWCONTROLLER object:nil];
2:通知中心触发消息
[[NSNotificationCenter defaultCenter] postNotificationName:FE_NOTI_BACK_ROOTVIEWCONTROLLER object:self userInfo:nil];
3:删除消息
[[NSNotificationCenter defaultCenter] removeObserver:self];
-------------------------------------------------------------------------NSNotificationCenter-------------------------------------------------------------------------------
相关文章推荐
- iOS Delegate NSNotificationCenter
- iOS Delegate NSNotificationCenter
- IOS NSNotificationCenter(通知 的使用)监听文本框的文字改变
- iOS 中KVC、KVO、NSNotification、delegate 总结及区别
- iOS 中KVC、KVO、NSNotification、delegate 区别整理
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
- IOS NSNotification Center 通知中心的使用
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
- iOS 中KVC、KVO、NSNotification、delegate 总结及区别
- iOS NSNotificationCenter 使用姿势详解
- iOS NSNotificationCenter 使用姿势详解
- iOS 中KVC、KVO、NSNotification、delegate 总结及区别
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
- iOS 中KVC、KVO、NSNotification、delegate 总结及区别
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
- 洪小瑶学iOS-NSNotificationCenter 详解
- iOS NSNotificationCenter 使用姿势详解
- iOS 中KVC、KVO、NSNotification、delegate 总结及区别