1
fengyunSmlie 2017-07-01 19:17:58 +08:00
|
2
laoyur 2017-07-01 19:41:31 +08:00
最基本的 NSNotification 就能搞定啊
|
3
LINAICAI 2017-07-01 23:33:20 +08:00
其实你的需求就是 A、B、C 三个控制器代表你三个功能页面,A 是搜索页面 PUSH 到用户个人主页点击了关注,然后 A 页面的用户搜索结果列表的关注状态改变了,同时 B 页面列表增加了一个用户而已。
这种情况最好的方法是使用通知,能一对多,实现起来代码量最少。 |
4
wohenyingyu02 2017-07-02 00:47:52 +08:00 via iPhone
难道不是在 viewdidappear 的时候去刷新数据么,连 notification 都不需要
|
5
a412739861 2017-07-02 00:57:22 +08:00
@wohenyingyu02 #4 viewdidappear 太浪费,相当于每次出来都刷新。而且如果是从网络获取,还得是每次都丢弃缓存。
|
6
wohenyingyu02 2017-07-02 11:37:30 +08:00 via iPhone
@a412739861 可以从本地获取,操作的时候直接更改缓存就行了吧?
|
7
summer1991 OP @LINAICAI 这样的话 应用内得有多少通知啊 ? 同时应用的内存数据中得存多少数据?
|
8
summer1991 OP @LINAICAI 我举的是一个场景 如果这种情况多了 代码的通知会乱飞 基本处于不可控的状态
|
9
summer1991 OP @wohenyingyu02 你说的是一种方法 解决方法 1.出来时刷新 (比较浪费网络) 2。 本地维护一个关注的人的列表 (本地处理比较复杂) 有没有简单的方法
|
10
LINAICAI 2017-07-03 12:40:00 +08:00
处理好 dealloc 中移除通知的观察者就好了,哪里会乱飞。经验告诉我这是最好的方法,你绕来绕去最终也会发现这个是最好的。
|
11
wohenyingyu02 2017-07-03 13:08:09 +08:00 via iPhone
@summer1991 我也有做过类似的业务逻辑,就是在另一个页面请求发出后,只有在收到服务器响应时才刷新本地缓存列表,其他页面只在显示时读缓存列表,不监听缓存变化,当然在显示时监听变化就更完善了。本地不维护缓存列表不是更复杂么,因为显示时要多线程处理网络请求,不然会阻塞界面线程。
|