代码之家  ›  专栏  ›  技术社区  ›  Pugalmuni Tom Tharakan

如何在iPhone应用程序中使用睡眠

  •  1
  • Pugalmuni Tom Tharakan  · 技术社区  · 14 年前

    我已经习惯在应用程序中加载默认图像。所以我决定,

          Sleep(3); in my delegate.m class.
    

    但有时需要6到7分钟。所以我只想显示3秒的图像,然后它会根据我的要求进入我的应用程序。

    哪一种方法是最好的?

         Sleep(3) or [NSThread sleepForTimeInterval:3.0] or something else; 
    

    我必须只显示图像3秒。请解释一下。 (注意:我只在deleagte类中声明setter和getter方法。)

    请解释一下。

    2 回复  |  直到 14 年前
        1
  •  2
  •   TechZen    14 年前

    正如Rob所指出的,苹果强烈建议不要使用闪屏,除非它隐藏了一些必要的幕后流程(如加载游戏图形)。这是非常不鼓励的,一些人声称他们的应用程序因为使用了不必要的闪屏而被拒绝。

    默认.png不存在以创建初始屏幕。 相反,它的存在允许您创建一种假象,即初始视图的加载速度比它快。您应该使用它来提供初始视图的图像,这样最终用户就可以开始认知地将自己定位到界面上。当他们将自己定位到界面上并移动手指去触摸界面时,界面就活了。

    为什么?因为iPhone应用程序应该是快速输入,快速输出。人们不会像桌面一样坐在桌子上使用它们。人们在旅途中使用。有时他们在谈话中使用它们。

    我告诉我的客户在散步、骑健身车等的时候,以及在面对面和电话交谈中,测试他们的应用程序(除了游戏)的可用性。在这种情况下,三秒钟的停顿是一件大事,非常明显,特别是如果应用程序是一个实用的应用程序。想象一下,如果每次打开联系人应用程序,你都要暂停三秒钟才能看到苹果的闪屏。你会很快被激怒的。

    关键是不必要的闪屏不会为用户增加任何价值。软件发行商为了获得发行商的唯一利益而占用最终用户的时间,这是一种自私的行为。每次用户使用应用程序都会浪费三秒钟的时间,这会使他们很快积累起来。(根据我的经验,它还让用户感觉到整个应用程序缓慢而笨重。)

    然而,如果你真的想用脚射自己,或者如果你的客户地狱般地在一个闪屏上,你会这样做:

    启动屏幕将一直显示到加载第一个视图,因此您会延迟加载第一个视图。在应用程序中委派 applicationDidFinishLaunching: 方法,移除将第一个视图加载到窗口中的所有代码。更换为计时器。将代码加载到计时器的fire方法中的第一个视图。

    通过该设置,应用程序将在启动时显示默认的.png。 应用程序完成启动: 从最终用户的角度来看,它似乎会暂停,因为不会出现任何视图来替换默认的.png。

    您应该注意,应用程序的标准启动时间是3-5秒。因此,您可能不需要做任何事情来显示启动屏幕3秒钟。它可能会自动发生。

        2
  •  2
  •   iwasrobbed    14 年前

    苹果公司强烈反对这种做法(以这种方式使用睡眠),尤其是在显示闪屏的情况下。

    最好的做法是创建一个看起来像 Default.png 文件,然后让它成为第一个笔尖。然后你可以设置一个 NSTimer 转换到主视图/窗口/控制器。