我知道的奇怪问题。我正在为 ios 开发一个应用程序,目标是商业中心的访客。该应用程序提供了一个内部更新系统,使用 xml 系统,由于一长串原因,在网络响应缓慢或快速的情况下,该系统的工作方式不同。不同之处在于 ui 的故障类型不同,我只能在用户连接速度较慢或连接速度较快的情况下选择具有更好性能的两种解决方案(一种用于快速情况下的问题,一个用于慢速案例)对于我遇到的问题,其中一个涉及在另一种情况下存在故障。在这种情况下,我应该偏爱属于快速或慢速连接的用户,为什么?
编辑:我会试着解释这个问题。我有一个需要通过 xml 更新的视图。当我启动视图时,我尝试访问 xml 以控制是否需要完成更新这一简单事实需要时间。我添加了一个活动指示器,但它不能正常工作,随着网络变慢,活动指示器似乎需要更多时间才能显示,结果用户不得不时间认为应用程序被冻结,尝试触摸他不必触摸的按钮(这将不起作用并使他认为该应用程序不起作用)等等。所以我使用 performSelectorInBackground 以尽可能快地添加活动指示器,它在 SLOW 连接情况下工作正常。在快速连接的情况下,活动出现得如此之快,即使控制是否必须完成更新,由于连接的速度,几乎不需要时间,导致它显示一皮秒的活动指示器,从而产生可怕的图形效果,这是要避免的。为了避免 FAST 案例中的问题,我添加了一个
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.000001 * NSEC_PER_SEC), dispatch_get_current_queue(), ^{ code to add the activity indicator; });
并且,通过这种方式,我没有 FAST 情况下的图形问题,但在 SLOW 情况下,dispatch_after 的执行(我猜)会减慢活动指示器的显示速度,从而导致应用程序冻结的印象。所以我的双手被束缚,我不知道它更喜欢什么。