通知的写法

1.最普通写法: [[NSNotificationCenter defaultCenter] postNotificationName:@"notificationName" object:nil];

2.PCH宏定义写法:#define NotificationName @"NotificationName"

3.写在.h文件中: static NSString *const NotificationName = @"NotificationName";

4.在.m中定义,.h中暴露: .m NSString *const NotificationName = @"NotificationName"; .h extern NSString * const NotificationName;

具体哪种写法好,查看官方文档和API写法,采用的是第四种写法。

注释写法:[Name of associated class] + [Did | Will] + [UniquePartOfName] + Notification

苹果自己的API:

UIKIT_EXTERN NSNotificationName const UITextFieldTextDidBeginEditingNotification; UIKIT_EXTERN NSNotificationName const UITextFieldTextDidEndEditingNotification; UIKIT_EXTERN NSNotificationName const UITextFieldTextDidChangeNotification;

UIKIT_EXTERN简单来说,就是将函数修饰为兼容以往C编译方式的、具有extern属性(文件外可见性)、public修饰的方法或变量库外仍可见的属性。

NSNotificationName typedef NSString *NSNotificationName NS_EXTENSIBLE_STRING_ENUM; 其实就是NSString *,我们当然可以用。 用NSNotificationName代替NSString *的好处是什么?直观。别人一看到NSNotificationName就知道你这是在定义一个通知。

因此后续建议采用这种写法: 最后提供一个完整模板

// Foo.h
UIKIT_EXTERN NSNotificationName const GBCartNumberBecomeActiveNotification// Foo.m
NSNotificationName const GBCartNumberBecomeActiveNotification = @"GBCartNumberBecomeActiveNotification";
复制代码

记得在别的类里添加监听的时候要导入定义通知名字的头文件哦,不然会访问不到这个NSNotificationName

PS:这个文章不错:程序员眼中的APP

产品懂技术,就像流氓会武术。技术会点产品,就像会武术的人去耍流氓???

iOS开发实战细节——通知写法相关推荐

  1. Xamarin iOS开发实战(内部资料)

    Xamarin iOS开发实战 (内部资料) 介绍:本教程是国内Xamarin针对iOS 9开发的唯一教程.本教程针对Mac OS X10.11/Windows 10两种系统平台,讲解如何使用Xama ...

  2. Xamarin iOS开发实战1.1.3Xamarin版本

    Xamarin iOS开发实战1.1.3Xamarin版本 Xamarin提供了免费版和付费版.免费版本包含Xamarin Studio服务.付费版本分为普通版299美元/年.商业版999美元/年和企 ...

  3. Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序

    Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序 C#原本是用来编写Windows以及Windows Phone的应用程序.自从Xamarin问世后,C#的作用就发生了很大的变化. ...

  4. Xamarin iOS开发实战中册 (内部资料)C#苹果应用开发

    Xamarin iOS开发实战中册 (内部资料)C#苹果应用开发 Xamarin iOS开发实战中册 (内部资料)C#苹果应用开发 试读样章下载地址:http://pan.baidu.com/s/1j ...

  5. Xamarin iOS开发实战上册-----2.2.2 使用代码添加视图

    Xamarin iOS开发实战上册-----2.2.2  使用代码添加视图 如果开发者想要使用代码为主视图添加视图,该怎么办呢.以下将为开发者解决这一问题.要使用代码为主视图添加视图需要实现3个步骤. ...

  6. Xamarin iOS开发实战上册(内部资料daxueba.net)

    Xamarin iOS开发实战上册(内部资料daxueba.net) 试读样章下载地址:http://pan.baidu.com/s/1mgqQIxE 第2章  用户界面--视图 在iPhone或者i ...

  7. IOS Swift5.5的通知写法

    IOS Swift5.5的通知写法 新建一个Common.swift 文件,把默认的全部删掉.里面书写通知的名字: import UIKit let kWBAppearanceTintColor: U ...

  8. iOS 开发实战培训

    语言概述 苹果iOS是由苹果公司开发的手持设备操作系统.苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch.iPa ...

  9. 最新仿映客直播APP开发实战项目IOS开发实战8天(最全最新)

    最新仿映客直播APP开发实战项目IOS开发实战8天 第 1 章:直播准备 1: [录播] 课程大纲介绍 09:56 2: [录播] 了解直播技术和腾讯云直播 09:54 3: [录播] 基础封装 23 ...

  10. 小米手环iOS开发实战(一):iOS蓝牙框架CoreBluetooth

    小米手环iOS开发实战(一):iOS蓝牙框架CoreBluetooth 本项目为对小米手环进行二次开发,利用了小米手环蓝牙连接并不安全的特性,连接后可以获取手环数据,并可修改数据. 本实例使用Swif ...

最新文章

  1. linux arm中断跑马灯,S3C2410 MDK实验---ARM汇编语言实现跑马灯
  2. STL (13) 非变动型算法
  3. js 复制图片_不会做ppt?Reveal.js让你复制粘贴另类拉风,简洁优雅又低调
  4. ABAP Memory/SAP Memory/Shared Buffer/Database
  5. Chrome 开发者工具 performance 标签页的用法
  6. cookies默认过期时间_「图」Chrome Canary新版已启动“增强版cookies控制”预览测试...
  7. tomcat+nginx+redis实现均衡负载、session共享
  8. java中来获取UUID
  9. java包含某个字符串_JavaScript判断一个字符串是否包含指定子字符串的方法
  10. 分析RocketMQ消费端长轮询的源码实现
  11. mac vscode debug安装调试moodle
  12. u盘一直提示格式化是什么原因?怎么找回数据?
  13. 【CTFhub】web-信息泄露-备份文件下载-网站源码_WriteUp
  14. 3dmax2014植树插件_3DsMax种树插件:ForestPack Pro v6.1.2 For 2015-2019 updated Libraries
  15. 如何编写测试用例及用例的意义
  16. 【鼠标§鼠标右键菜单清理四招】
  17. 复制/粘贴丢失 换行符或者空格
  18. 全球是一个班(比喻很形象)
  19. debugbar php漏洞,Laravel-debugbar 开发调试利器
  20. DNN、RNN、CNN

热门文章

  1. Java实现图片压缩功能
  2. uwsgi 的启动、停止、重启
  3. Specification查询
  4. 更改C盘用户目录下的用户名(亲测有效)
  5. 2021阿里云双11云服务器配置表汇总!
  6. 中国社会为何多犬儒?
  7. 最新版校园招聘进大厂系列----------(2)美团篇 -----未完待续
  8. 第六次团队作业——Alpha冲刺之事后诸葛亮
  9. hackthebox - frolic (考点: 信息搜集 ook解密 base解密 zip 解密 xxd解密 brainfuck解密 playsms安全)
  10. Python爬虫从入门到精通:(6)数据解析2_使用bs4(BeautifulSoup)_Python涛哥