話不多阵谚,今天就是心血來潮來寫一點(diǎn)東西,就寫通知設(shè)計(jì)模式實(shí)現(xiàn)的猜想吧口叙!在此之前沒看過什么網(wǎng)上的各種大牛的博文炼绘,如有雷同萬分榮幸!另外妄田,也不知道知道通知設(shè)計(jì)模式實(shí)現(xiàn)原理是什么俺亮,只是這有辦法實(shí)現(xiàn)相同的功能!還是一如既往分析代碼吧疟呐!
1.@property (class, readonly, strong) NSNotificationCenter *defaultCenter;
2.- (void)postNotificationName:(NSNotificationName)aName object:(nullable id)anObject;
3.- (void)addObserver:(id)observer selector:(SEL)aSelector name:(nullable NSNotificationName)aName object:(nullable id)anObject;
4.- (void)removeObserver:(id)observer;
上面是 iOS的API脚曾,1 ->單例設(shè)計(jì)模式,上邊說過的启具,這里就不贅述了;2->的參數(shù)NSNotificationName 值得一說本讥,是為了讓多個(gè) 同志共存 ;3->先說參數(shù)吧 observer 的存在是為了執(zhí)行 aSelector, aName是為了查找 是否注冊了通知 拷沸;4-> 這個(gè)好像也沒什么好說的色查!上面解釋了這些東西存在的意義,那么下面的談?wù)剬?shí)現(xiàn)吧撞芍!我的思路是這樣的秧了,運(yùn)用Runtime通過observer 對象從方法列表中找的aSelector 的 IMP 并且執(zhí)行!
其實(shí)序无,就是想明白怎么處理的验毡,對自己是非常有幫助的,不論是對API的理解帝嗡,還是以后代碼的設(shè)計(jì)晶通!
若有不對的地方,敬請指點(diǎn)和指指點(diǎn)點(diǎn)哟玷!要是覺得還可以的話狮辽,請點(diǎn)贊收藏!