zoukankan      html  css  js  c++  java
  • iOS Delegate NSNotificationCenter

     

    分类: iOS Code Help

    ----------------------------------------------------------------------------------Delegate----------------------------------------------------------------------------------------

    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;  

    @optional表示该方法可选.接管者不实现也没有关系.

    7:在声明代理所需要实现的方法前 加  @required(默认)表示该方法必需实现,接管者如果不实现,XCode编辑器将会提出警告.如下图所示:



    8:使用Delegate进行开发时要注意如下两点

    1:如果你是编写静态库給別人用时,记得把你的delegate設成(assign)  property,這樣才不會造成内容泄漏,空指针引用
    2:当你是要始用別人的library,記得在你自己dealloc的時候,把delegate設成nil,以避免crash的事情發生。

    object:nil];  
    2:通知中心触发消息

    [[NSNotificationCenter defaultCenter] postNotificationName:FE_NOTI_BACK_ROOTVIEWCONTROLLER object:self userInfo:nil];  


    3:删除消息

    [[NSNotificationCenter defaultCenter] removeObserver:self];  


    -------------------------------------------------------------------------NSNotificationCenter-------------------------------------------------------------------------------


  • 相关阅读:
    转: 分布式系统编程,你到哪一级了?
    window屏幕朝向的调整 Alt + Ctrl + 上下左右箭头
    win10的安装与下载
    Zookeeper的学习材料
    配置文件的格式选型
    转: YAML 语言教程 from(阮一峰)
    Eclipse的 JSON Edit插件
    转: 如何为你的开源项目选择一个合适的开源协议?
    在Eclipse中使用SVN插件subclipse的教程
    我们在呼唤上帝还是在召唤恶魔——警惕人工智能
  • 原文地址:https://www.cnblogs.com/allanliu/p/4260286.html
Copyright © 2011-2022 走看看