我在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的模拟器中测试
答案 0 :(得分:1)
为我完美无瑕地工作。您是否已将MapKit.framework
与目标相关联?