美文网首页iOS程序猿
iOS 谁说通知不好用?不能用?这个通知可以用

iOS 谁说通知不好用?不能用?这个通知可以用

作者: IT的救赎 | 来源:发表于2018-11-27 22:04 被阅读15次

作为iOS开发者,经常听到老前辈们说,通知最好不要用,用不好会出现各种问题,而且使用起来比较麻烦。不推荐使用。最好使用Block或者代理。但是老前辈们忘记了Blcok使用的多的话,会造成应用程序“臃肿”,借用一张图来说明:

我个人推荐大家好好看看这安文章,够辣够有味。看过之后你可能就不会觉得Block是那么完美了。地址:iOS底层原理总结 - 探寻block的本质

至于大家不喜欢也不习惯使用NSNotification。我个人认为有几点:

第一:前辈们的教导,深入内心。

第二点:无论是自学还是培训机构可能都是忽略这个模块。

第三:网上资料也是各种推荐代理/Block

通过这些种种原因,导致了苹果公司主推的一些API被开发者废弃。而舍近求远的去学习一些东西。

下面,小编给大家推荐一个封装好的NSNotification,使用起来简单有效,所谓的MVP、MVC、MVVM,无论你要实现那种架构,否可以做到相互独立存在,这就是通知的好处,不用导入N多头文件。

/**  

单利 

 */ 

+(BSYNotificationCenter *)shareCenter; 

 /**  添加通知

  @param CenterName 通知名称 

 @param object 参数

  @param  SuccessRemove 注册成功后立即删除通知 (True:删除,False:不删除) 

 */ 

-(void)bsy_RegisterCenterName:(nonnull NSNotificationName )CenterName object:(nullable id)object SuccessRemove:(BOOL)SuccessRemove; 

 /**  接受通知

  @param goal 目标者

  @param actionMothed 方法名称

  @param CenterName 通知名称 

@param  SuccessRemove 接受成功后立即删除通知 (True:删除,False:不删除) 

 @param backBlock 接受后回调 

 */

 -(void)bsy_addGoal:(nonnull id)goal ActionMothed:(NSString *)actionMothed  CenterName:(NSNotificationName )CenterName queue:(NSOperationQueue*)queue SuccessRemove:(BOOL)SuccessRemove  BackBlock:(Successted)backBlock; 

/**  删除目标中的所有通知 

 @param goal 目标 

 */

 -(void)bsy_removeGoal:(nonnull id)goal; 

 /**

  删除具体的通知  @param goal 目标  @param CenterName 通知名称 

 */

 -(void)bsy_removeGoal:(nonnull id)goal  CenterName:(nonnull NSNotificationName )CenterName;

最后附上项目地址:BSYNotificationCenter BSYNotificationCenter是对通知的简单封装,开发者不用再去关注移除这些问题,在方法中注册成功/接受成功后直接移除,希望大家喜欢并Star支持!

相关文章

网友评论

    本文标题:iOS 谁说通知不好用?不能用?这个通知可以用

    本文链接:https://www.haomeiwen.com/subject/antoqqtx.html