016-通知各参数的意义

1、了解在发送通知时,通知方法中每个参数的作用

 /**
  通知方法中的参数
  1.监听对象
  2.监听方法
  3.监听的通知字符串
  4.发送通知的对象
      - 如果是 nil,监听所有的对象
      - 如果不为 nil,只监听 该对象发出的通知
 */

NotificationCenter.default.addObserver("监听通知的对象", selector: "接收到通知以后要执行的方法", name: "通知字符串", object: "发出该通知的对象")

1-1、最关键的差别是第四个参数

  • 当发送通知的对象为 nil 时,无论是在TV1还是在TV2中输入内容,都会执行keyboardChange方法
//
//  ViewController.swift
//  9-通知参数
//
//  Created by 紫荆秋雪 on 2017/2/18.
//  Copyright © 2017年 Revan. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    
    /// TextView
    @IBOutlet weak var TV1: UITextView!
    
    /// Textview
    @IBOutlet weak var TV2: UITextView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        /// 添加监听方法
        /**
         通知方法中的参数
         1.监听对象
         2.监听方法
         3.监听的通知字符串
         4.发送通知的对象
            - 如果是 nil,监听所有的对象
            - 如果不为 nil,只监听 该对象发出的通知
         */
        NotificationCenter.default.addObserver(self, selector: #selector(textViewChange), name: NSNotification.Name.UITextViewTextDidChange,
            object: nil)

    }
    
    func textViewChange(n: NSNotification) {
        
        print("监听textView输入内容")
        
    }
    
    //MARK: - 移除通知
    deinit {
        NotificationCenter.default.removeObserver(self)
    }

}

  • 当发送通知的对象为 TV1 时,只有在TV1中输入内容时,才会执行keyboardChange方法
//
//  ViewController.swift
//  9-通知参数
//
//  Created by 紫荆秋雪 on 2017/2/18.
//  Copyright © 2017年 Revan. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    
    /// TextView
    @IBOutlet weak var TV1: UITextView!
    
    /// Textview
    @IBOutlet weak var TV2: UITextView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        /// 添加监听方法
        /**
         通知方法中的参数
         1.监听对象
         2.监听方法
         3.监听的通知字符串
         4.发送通知的对象
            - 如果是 nil,监听所有的对象
            - 如果不为 nil,只监听 该对象发出的通知
         */
        NotificationCenter.default.addObserver(self, selector: #selector(textViewChange), name: NSNotification.Name.UITextViewTextDidChange,
            object: TV1)

    }
    
    func textViewChange(n: NSNotification) {
        
        print("监听textView输入内容")
        
    }
    
    //MARK: - 移除通知
    deinit {
        NotificationCenter.default.removeObserver(self)
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,185评论 6 13
  • 《ilua》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 1...
    叶染柒丶阅读 11,010评论 0 11
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,951评论 0 15
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,217评论 30 472