Iphone 在播放splash时,我可以做些什么吗?

Iphone 在播放splash时,我可以做些什么吗?,iphone,objective-c,Iphone,Objective C,请告诉我,我可以在应用程序加载(启动屏幕显示)时使用一段时间来执行一些后台操作吗?(我需要打电话给CLLocationManager并更新当前位置)如果允许我这样做,请告诉我在哪里放置代码。在显示真正的启动屏幕时,不可能执行任何操作。 你的行动从一开始 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法,该方法在删除初始屏

请告诉我,我可以在应用程序加载(启动屏幕显示)时使用一段时间来执行一些后台操作吗?(我需要打电话给CLLocationManager并更新当前位置)如果允许我这样做,请告诉我在哪里放置代码。

在显示真正的启动屏幕时,不可能执行任何操作。 你的行动从一开始

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
方法,该方法在删除初始屏幕时执行。 如果您想在显示用户界面之前执行一些耗时的操作,您唯一的选择就是在此期间手动显示“假”启动屏幕。它可以是图像或其他任何东西,例如活动指示器或动画。如果使用与启动屏幕相同的图像, 用户将看不到任何区别,它看起来像启动屏幕将为他保留几秒钟的时间,但您将已经加载了数据

在这种情况下,您的应用程序代理可能如下所示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.viewController = [[ViewController alloc] 
    initWithNibName:@"FakeSplashViewController" bundle:nil];
    self.window.rootViewController = self.viewController;
    [self performSelectorInBackground: @selector(someLongOperation) withObject: nil];
    [self.window makeKeyAndVisible];
    return YES;
}

- (void) someLongOperation{
    //doing something
    //...
    [self performSelectorOnMainThread:@selector(atLastLoadGUI) withObject:nil waitUntilDone:NO];
}

- (void) atLastLoadGUI{
    // start GUI
}
“闪屏”并不是真正打算用作闪屏。它最初用于显示应用程序的UI,但其中没有任何数据。这是立即显示给用户的印象,应用程序加载非常快,然后刷新其中的数据。但人们对它进行了调整,以显示加载屏幕(公司徽标等),所以我认为苹果最终接受了即将发生的事情。