gpt4 book ai didi

iPhone,如何避免看门狗因启动时间过长而杀死我的应用程序?

转载 作者:行者123 更新时间:2023-12-03 20:28:58 25 4
gpt4 key购买 nike

通知看门狗我没有处于无限循环并且我仍在加载所以不要杀死我的应用程序的正确方法是什么?

我在崩溃日志中收到异常类型:00000020异常代码:0x8badf00d并且仅当从 iphone 独立于 xcode 运行应用程序时

代码花费时间是:

- (void)viewDidLoad {
[super viewDidLoad];
Reachability* reachability = [Reachability sharedReachability];
[reachability setHostName:@"www.apps2you.com"]; // set your host name here
NetworkStatus remoteHostStatus = [reachability remoteHostStatus];

if (remoteHostStatus == ReachableViaWiFiNetwork||remoteHostStatus == ReachableViaCarrierDataNetwork )
{
//getting the xml file and then getting the ad images online to display as splah ads.
}
else {
//or launch the main interface if there's no connectivity.
[self DisplayTabbar];
}
}

谢谢。

最佳答案

如果您有一些初始化需要很长时间,那么最好在新线程中运行它(通过performSelectorInBackground:withObject:)。然后,您的 UI 将以某种“锁定”状态启动。创建一个“解锁”UI 的方法。作为后台方法的最后一个操作,通过 performSelectorOnMainThread:withObject:waitUntilDone: 运行该解锁方法。

重要的是不要阻塞主线程,以便运行循环可以响应 iOS 事件。这就是为什么你应该避免 sleep 或其他阻塞的东西。不过,阻塞另一个线程是可以的。此外,采用基于事件的编程方法也有很大帮助。

更新:

现在,最好使用 dispatch_async 而不是 performSelectorInBackground:withObject:。您仍然应该在 dispatch_async block 内创建一个新的 NSAutoreleasePool 以避免内存泄漏。

关于iPhone,如何避免看门狗因启动时间过长而杀死我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4712333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com