游戏或者应用开发的时候,用观察者模式有更低的耦合性,开发速度快,在很多语言平台都有广泛应用,这里有介绍:
百度百科传送门 : https://baike.baidu.com/item/观察者模式/5881786?fr=aladdin
这里介绍快速创建广播,传递参数,创建侦听者
创建广播
#define ncp(ntfname,target,userinfo) do{[[NSNotificationCenter defaultCenter]postNotificationName:ntfname object:target userInfo:(userinfo)];}while(0)
创建侦听
#define nca(ntfname,target,func) do{[[NSNotificationCenter defaultCenter]addObserver:target selector:@selector(func) name:ntfname object:nil];}while(0)
传递参数
id param = @{@"id":@(_id), @"selected":@(_isSelected)};
ncp(@"ntfVideoSelect", self, param);
id param = @{@"id":@(_id), @"selected":@(_isSelected)};
快速创建字典
@(_id)
快速将数字/布尔转换为NSNumber
@[@"1",@"2",@"3"]
快速创建数组