IOS - Mapkit崩溃 - 这是xcode 4.2和自动引用计数(ARC)中的错误吗?

时间:2011-10-25 22:35:28

标签: objective-c ios crash mkmapview mapkit

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

我创建了一个非常基本的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。

除了UIViewController继承的自动生成方法之外,m文件中没有添加任何内容。

MapViewController实例化为:

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

因此,加载mapview并滚动地图或放大/缩小时程序会崩溃。 Main将因EXE_BAD_ACCESS而崩溃,这意味着它正在访问非法内存。

我用仪器对它进行了描述并检查了Zombies,结果发现mapview过度释放了一个物体并且它崩溃了 - 如图所示。

Zombie log http://dl.dropbox.com/u/2250562/xcode4.2-Mapview-Crash.png ![僵尸日志] [1]

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

系统信息: Xcode 4.2使用ARC构建4D199 - &gt;自动引用计数

App在IOS 4.3的模拟器中测试

1 个答案:

答案 0 :(得分:1)

为我完美无瑕地工作。您是否已将MapKit.framework与目标相关联?