iOS 谁说通知不好用?不能用?这个通知可以用
2018-11-27 本文已影响15人
IT的救赎
作为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支持!
上一篇
下一篇