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];

  • 相关阅读:
    Boost for Android
    揭秘Facebook官方底层C++底层函数Folly
    ZT 将sublime text的tab改为四个空格
    ZT Linux可用的最新版本的sublime text注册
    http/ftp等的URL匹配正则表达式 ZT
    国内163的Ubuntu更新源
    oracle11g的监听配置文件中的program和env两个配置,必须干掉,客户端才能正常连接
    ubuntu下安装php7
    oracle密码过期的修改
    oracle 查看字段说明
  • 原文地址:https://www.cnblogs.com/wxdonly/p/5130383.html
Copyright © 2011-2022 走看看