1

我需要将一些剩余的数据上传到服务器application:didFinishLaunchingWithOptions,但这需要一些时间,最终应用程序可能会因为无法及时完成启动而被杀死,所以我使用了:

[myObject performSelector:withObject:afterDelay:]

有 0.2f 延迟,让application:didFinishLaunchingWithOptions完成,但这看起来不是一个好主意,所以我想知道有没有办法可以在之后执行选择器application:didFinishLaunchingWithOptions

我知道有,applicationDidBecomeActive但我需要在application:didFinishLaunchingWithOptions.

4

1 回答 1

3

如果你使用 0 的延迟,它将在控制返回到 runloop 时立即执行。

但是,如果这在 appDidFinishLaunching 中阻塞太久,那么无论何时运行它都会阻塞。您确实应该将此代码移至后台线程。主线程上的同步网络访问绝不是一个好主意。

于 2012-09-25T00:19:47.197 回答