由于性能问题,我尝试在多线程中初始化我的 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/