我需要在application:didFinishLaunchingWithOptions
中将一些剩余数据上传到服务器,但这需要一些时间,最终应用程序可能会因为无法及时完成启动而被杀死,所以我使用了:
[myObject performSelector:withObject:afterDelay:]
延迟0.2f,让application:didFinishLaunchingWithOptions
完成,但看起来不是一个好主意,所以我想我有没有办法在application:didFinishLaunchingWithOptions
之后执行选择器?
我知道有applicationDidBecomeActive
,但我需要在application:didFinishLaunchingWithOptions
执行。
答案 0 :(得分:3)
如果你使用延迟0,一旦控制权返回到runloop,它就会被执行。
但是,如果在appDidFinishLaunching中阻塞太久,那么无论何时运行它都会阻塞。您真的应该将此代码移动到后台线程。主线程上的同步网络访问永远不是一个好主意。