iphone - iOS 4.2 不允许 MKMapView 在另一个线程中初始化

标签 iphone

由于性能问题,我尝试在多线程中初始化我的 map View 。它在 iOS4.1 或更低版本中完美运行..但是今天一些用户向我发送电子邮件说他们遇到了 map 问题。我收到了这条消息:

Terminating app due to uncaught exception 'NSRangeException', reason: '<MKMapView: 0x643cd60; frame = (2.93669e-38 4.02966e-38; 1.4013e-45 0); transform = [1.4013e-45, 4.25886e-39, 3.68263e-35, 0, -6.62662e-10, 4.35818e-38]; alpha = 0; opaque = NO; layer = (null)> initWithFrame:: MKMapView must be initialized on the main thread.'

我已经将我的 map View 初始化更改为主线程。但是,你们知道如何使用 iOS 4.2 在另一个线程中初始化 map 吗?

最佳答案

您应该只在主线程上创建和修改 UIView 子类。这就是框架的设计方式。如果您确实需要从子线程更新 View ,您可以使用:

[myView performSelectorOnMainThread:@selector(makeSomethingFlashyHappen:)withObject:[NSNumber numberWithBool:YES] waitUntilDone:NO];

关于iphone - iOS 4.2 不允许 MKMapView 在另一个线程中初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4267756/

相关文章:

iphone - 隐藏 UIMenuController

iphone - XMPPFramework 消息未发送

ios - 自动布局问题

ios - 在 iOS 应用程序中获取 WAN IP

iphone - 在 iPhone 4 中运行 ARToolKit for iOS 时切换到前置摄像头

iphone - 将 NSLayoutConstraints 应用于 UIView 子类

ios - objective-c - ios : How to pick video from Camera Roll?

ios - ipad中的下拉框

ios - 如何针对不同的设备分辨率处理不同的字体和图像大小?

javascript - 抓取类中的图层内容