博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
组件接口(API)设计指南[4]-通知(Notifications)
阅读量:5809 次
发布时间:2019-06-18

本文共 1502 字,大约阅读时间需要 5 分钟。

*返回文件夹阅读其它章节: 

通知(Notifications)

    通知是托付协议的还有一半。我的立场是。假设你使用托付协议(你因该在全部适合的地方使用),就加入一个相同功能的通知。以使它提供完整的托付/通知方案。

    在MGTileMenu中,你能够找到关于通知的接口文件:

规则23: 通知尾随托付方法

    在托付方法(适当的。不是数据源方法)和通知之间存在着天生的对应关系。你能够在你代码的不论什么地方使用他们。而达到全然相同的目的。

    假设你有一个关于事件发生的托付。你通常也应该提供一个相同目的的通知。做到即使把托付方法全部移除,使用者也依旧能够通过通知来实现对应功能。

    托付方法的參数应该与通知的‘userInfo(通知附加值)’内容匹配。通知与您在托付中直接传递參数有一个明显的差别,它通常须要将信息装载到字典(NSDictionary)中。

    托付方法:

- (void)tileMenuWillDisplay:(MGTileMenuController *)tileMenu;

- (void)tileMenuDidDisplay:(MGTileMenuController *)tileMenu;

    对应的通知:

externNSString *MGTileMenuWillDisplayNotification;

externNSString *MGTileMenuDidDisplayNotification;

 

规则24: 不要吝啬‘userInfo(通知附加值)’ 

    给通知对象所须要的足够信息。

请记住,通知接收器可能(差点儿总是会)不持有托付或数据源组件的引用。

    问问自己什么是实用的,并提供对应信息。

最起码,你必须确保提供给对应托付方法的參数都包括在了userInfo的对象中。

    托付方法:

- (void)tileMenu:(MGTileMenuController *)tileMenuwillSwitchToPage:(NSInteger)pageNumber;

- (void)tileMenu:(MGTileMenuController *)tileMenudidSwitchToPage:(NSInteger)pageNumber;

    对应的通知:

// 通知userInfo包括一个键"MGPageNumber"

#defineMGPageNumberKey @"MGPageNumber"
externNSString *MGTileMenuWillSwitchToPageNotification;
externNSString *MGTileMenuDidSwitchToPageNotification;

规则25: 測试的地狱

    最后,全部事情大家都已经知道了。

软件project专业化第101条:确保它确实能够工作。

    是否使用正式的TDD(測试驱动开发)取决于你。但測试本身是不可能做到全面的。每个托付方法、每个通知、每个定制点所共同组成的千千万万种组合可能出现各种问题。

    出现缺陷,首先应该找到并修复他们。假设你在赶时间,能够裁切功能。你一定会对无bug上线的问题感到苦恼。

阅读下一章节: 

-------------------------

英文原名《API Design》

       作者:Matt Gemmell
       原名链接:

中文版由xoneday翻译

       欢迎訪问译者博客:
       新浪微博:

假设这片译文给您带来了帮助,希望您能通过下载我的APP来支持我:

豆瓣读书:
便签夹:

           

             便签夹                                        豆瓣读书

*转载声明:请勿删减作者/译者信息与支持部分的内容。如不接受此条款请勿转载。

你可能感兴趣的文章
云原生的浪潮下,为什么运维人员适合学习Go语言?
查看>>
Webpack入门教程三十
查看>>
EAServer 6.1 .NET Client Support
查看>>
锐捷交换机密码恢复(1)
查看>>
Kali linux virtualbox rc=1908 错误解决办法
查看>>
linux软件包管理之三(源代码安装)
查看>>
数据库三范式是什么?
查看>>
[转载]设置Ubuntu自动连接无线,无须再输入密钥环和无线密码
查看>>
九叔Xen App测试报告
查看>>
Apache配置
查看>>
Ext gridPanel 单元格数据的渲染
查看>>
Android SDK 的下载代理
查看>>
Method Swizzling对Method的要求
查看>>
佛祖保佑,永不宕机
查看>>
四、配置开机自动启动Nginx + PHP【LNMP安装 】
查看>>
LNMP一键安装
查看>>
SQL Server数据库概述
查看>>
Linux 目录结构及内容详解
查看>>
startx命令--Linux命令应用大词典729个命令解读
查看>>
华为3026c交换机配置tftp备份命令
查看>>