楼主:
darktt (小朱)
2016-04-17 11:12:17你的问题是典型的“时间竞争 (Timing Issue)”,
主要的原因是 UI 与网络资料完成处理的时间顺序不一定,
正常的情况下是 UI 先完成再处理网络资料,
不过有可能是网络资料先完成,UI 才完成,
结果就是无法正确显示资料。
如果你真的要网络优先处理的话,
是有一个解决方法,
有几个要点:
1. 网络资料一定要保存到本地端的档案里(如 NSUserDefaults)。
2. 完成网络资料之后一定要有广播通知 UI 去取得资料(如 NSNotificationCenter)。
3. UI 在加载的过程中一定先检查本地端的档案有没有资料,才再注册广播。
这样子就算网络资料优先完成,UI 也能将资料取回来,
就不会有显示上的问题了。