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

  • 相关阅读:
    Python3-元组
    Python3-列表
    Python3-字符串
    Python3-for循环机制
    Python3-初识
    优先队列——priority queue
    单调队列 —— 滑动窗口
    SDNU_ACM_ICPC_2021_Winter_Practice_7th [个人赛]
    博弈论入门(论和威佐夫、巴什、尼姆打牌被吊打是什么感受(╥﹏╥)
    字符串最大最小表示法
  • 原文地址:https://www.cnblogs.com/wxdonly/p/5130383.html
Copyright © 2011-2022 走看看