【问题标题】:App crashes on alternate runs while using NSThread for loading map使用 NSThread 加载地图时应用程序在交替运行时崩溃
【发布时间】:2010-12-07 09:25:34
【问题描述】:

我正在使用 NSThread 与主线程同时做一些工作。我已经在 iPhone 3G 上部署了应用程序 应用程序在首次运行时按预期运行。

但是,当我关闭应用程序并再次运行它时,它会立即崩溃。下次我运行该应用程序时,它又可以正常工作了。这不断重复。

我不知道为什么应用程序的早期运行会对下次运行产生影响。 请帮忙!

这是我的代码:

NSThread *th=[[NSThread alloc]initWithTarget:self selector:@selector(loadMap) object:nil];
[th start]; 

-(void) loadMap{

    NSAutoreleasePool * pool=[[NSAutoreleasePool alloc]init];

    //code to load MKMapView

    [pool release];

}

提前致谢

如果我在两次运行之间打开另一个地图应用程序,应用程序不会崩溃! 如果我删除线程并串行加载地图,应用程序也可以正常工作

【问题讨论】:

    标签: iphone crash mkmapview nsthread


    【解决方案1】:

    我认为你应该花时间阅读thread programming reference,关于线程管理一章。

    【讨论】:

    • 我已经多次阅读线程编程指南。
    • 如果你发现了,能否请你详细说明代码中的错误在哪里?
    • 文档中说如果应用退出,非分离线程将直接终止。
    • 而且,我记得 iPhone 3G 不支持多任务,所以当按下 Home 键时它会终止应用程序。 iPhone 3GS 会让你的应用进入后台,那么当应用重新进入前台时可能会出现问题。
    • 文档,第 18 页,线程和您的用户界面部分推荐,从主线程运行与用户相关的事件和界面初始更新。可以避免一些已知问题。
    猜你喜欢
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    相关资源
    最近更新 更多