V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
summer1991
V2EX  ›  iOS

大家好,我又来请教了

  •  
  •   summer1991 · 2017-07-01 17:37:00 +08:00 · 2777 次点击
    这是一个创建于 2702 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 我有一个社交类的 APP,有三个 Tab 页面。
    2. 第一个页面是搜索用户,第二个页面是我的关注,第三个我的粉丝。
    3. 现在我在第一个页面搜索出来一个用户,搜索出来的 cell 上有关注按钮,也可以点这个 cell 跳到这个用户的个人主页进行关注。
    4. 那么问题来了:我跳到这个用户的个人主页进行关注后返回搜索页面,怎么将搜索页面关注按钮变成已关注,并且在第二个 tab 中加入我已经关注的这个用户?
    11 条回复    2017-07-03 13:08:09 +08:00
    fengyunSmlie
        1
    fengyunSmlie  
       2017-07-01 19:17:58 +08:00
    laoyur
        2
    laoyur  
       2017-07-01 19:41:31 +08:00
    最基本的 NSNotification 就能搞定啊
    LINAICAI
        3
    LINAICAI  
       2017-07-01 23:33:20 +08:00
    其实你的需求就是 A、B、C 三个控制器代表你三个功能页面,A 是搜索页面 PUSH 到用户个人主页点击了关注,然后 A 页面的用户搜索结果列表的关注状态改变了,同时 B 页面列表增加了一个用户而已。
    这种情况最好的方法是使用通知,能一对多,实现起来代码量最少。
    wohenyingyu02
        4
    wohenyingyu02  
       2017-07-02 00:47:52 +08:00 via iPhone
    难道不是在 viewdidappear 的时候去刷新数据么,连 notification 都不需要
    a412739861
        5
    a412739861  
       2017-07-02 00:57:22 +08:00
    @wohenyingyu02 #4 viewdidappear 太浪费,相当于每次出来都刷新。而且如果是从网络获取,还得是每次都丢弃缓存。
    wohenyingyu02
        6
    wohenyingyu02  
       2017-07-02 11:37:30 +08:00 via iPhone
    @a412739861 可以从本地获取,操作的时候直接更改缓存就行了吧?
    summer1991
        7
    summer1991  
    OP
       2017-07-03 11:26:20 +08:00
    @LINAICAI 这样的话 应用内得有多少通知啊 ? 同时应用的内存数据中得存多少数据?
    summer1991
        8
    summer1991  
    OP
       2017-07-03 11:27:54 +08:00
    @LINAICAI 我举的是一个场景 如果这种情况多了 代码的通知会乱飞 基本处于不可控的状态
    summer1991
        9
    summer1991  
    OP
       2017-07-03 11:29:46 +08:00
    @wohenyingyu02 你说的是一种方法 解决方法 1.出来时刷新 (比较浪费网络) 2。 本地维护一个关注的人的列表 (本地处理比较复杂) 有没有简单的方法
    LINAICAI
        10
    LINAICAI  
       2017-07-03 12:40:00 +08:00
    处理好 dealloc 中移除通知的观察者就好了,哪里会乱飞。经验告诉我这是最好的方法,你绕来绕去最终也会发现这个是最好的。
    wohenyingyu02
        11
    wohenyingyu02  
       2017-07-03 13:08:09 +08:00 via iPhone
    @summer1991 我也有做过类似的业务逻辑,就是在另一个页面请求发出后,只有在收到服务器响应时才刷新本地缓存列表,其他页面只在显示时读缓存列表,不监听缓存变化,当然在显示时监听变化就更完善了。本地不维护缓存列表不是更复杂么,因为显示时要多线程处理网络请求,不然会阻塞界面线程。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1973 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:45 · PVG 08:45 · LAX 16:45 · JFK 19:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.