zoukankan      html  css  js  c++  java
  • 关于NSNotification的使用(重点掌握)

    使用消息机制的步骤:

    1. 观察者注册消息通知

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getUserProfileSuccess:) name:@"Notification_GetUserProfileSuccess" object:nil];

    notificationObserver 观察者 : self
    notificationSelector 处理消息的方法名: getUserProfileSuccess 
    notificationName 消息通知的名字: Notification_GetUserProfileSuccess
    notificationSender 消息发送者 : 表示接收哪个发送者的通知,如果第四个参数为nil,接收所有发送者的通知

     

    2. 发送消息通知

    //UserProfile Is A Model
    //@interface UserProfile : NSObject

    [[NSNotificationCenter defaultCenter] postNotificationName:@"Notification_GetUserProfileSuccess" object:userProfile userInfo:nil];

    notificationName 消息通知的名字: Notification_GetUserProfileSuccess

    notificationSender 消息发送者: userProfile

     

    3. 观察者处理消息 

    复制代码
    - (void) getUserProfileSuccess: (NSNotification*) aNotification
    {
    self.userProfile = [aNotification object];
    
    lblName.text = self.userProfile.Name;
    lblEENO.text = self.userProfile.EENO;
    lblNric.text = self.userProfile.NRIC;
    lblBirthday.text =self.userProfile.Birthday;
    lblHireDate.text = self.userProfile.Hiredate;
    
    txtMobilePhone.text = self.userProfile.Mobile;
    txtEmail.text = self.userProfile.Email;
    }
    复制代码

     

    NSNotification 接受到的消息信息,主要含:
    Name: 消息名称 Notification_GetUserProfileSuccess
    object: 消息发送者 userProfile
    userInfo: 消息传递的数据信息

     

    4. 观察者注销,移除消息观察者

    虽然在 IOS 用上 ARC 后,不显示移除 NSNotification Observer 也不会出错,但是这是一个很不好的习惯,不利于性能和内存。

    注销观察者有2个方法:

    a. 最优的方法,在 UIViewController.m 中:

    -(void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    }

     If you see the method you don't need to call [super dealloc]; here, only the method without super dealloc needed.

     

    b. 单个移除:

    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"Notification_GetUserProfileSuccess" object:nil];

  • 相关阅读:
    NHibernate 做个小项目来试一下吧 四 (我们继续)
    NHibernate 做个小项目来试一下吧 三
    NHibernate 做个小项目来试一下吧(数据分页) 七
    用SWFUpload插件进行多文件上传(上传页获得自定义后的文件名)
    SQL:找出我(uid=2)所有的好友信息,和这些好友发布的最新的一篇文章
    介绍生成PHP网站页面静态化的方法
    smarty if 操作符
    php 做注册邮件发送成功
    200多个js技巧代码
    生成列表页分页的HTML静态页
  • 原文地址:https://www.cnblogs.com/wxdonly/p/5130383.html
Copyright © 2011-2022 走看看