- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望有人能帮助我解决 iOS 6 上的这个奇怪的崩溃问题。
我正在为 iOS 6 - iOS 7 构建一个应用程序,我正在使用一个 MKMapView
添加了一个 MKPointAnnotation
。我还使用自定义 MKAnnotationView
来显示我的 pin 和标注。在 iOS 7 上,一切都运行良好。但是,iOS 6 我在 MKMapView:addAnnotation
上得到了一个 EXC_BAD_ACCESS
。一切都在 viewDidLoad
上完成。
我也测试了 2 个场景。
如果我在添加注释之前设置 MKMapView
委托(delegate),它会在 iOS 6 上崩溃。
如果我在添加注释后设置 MKMapView
委托(delegate),它不会在 iOS 6 上崩溃,但不会调用 viewForAnnotation
,我最终得到默认 pin 而不是我的自定义 pin 和标注。
代码:
-(void)viewDidLoad
{
[super viewDidLoad];
//set delegate
self.mapView.delegate = self;
//lat, long
CGFloat latitude = 40.689249f;
CGFloat longitude = -74.0445f;
//coord, span, region
CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(latitude, longitude);
MKCoordinateSpan span = MKCoordinateSpanMake(0.05f, 0.05f);
MKCoordinateRegion region = MKCoordinateRegionMake(coord, span);
//annotation
MKPointAnnotation annotation = [[MKPointAnnotation alloc] init];
[annotation setTitle:@"title here"];
[annotation setCoordinate:coord];
[self.mapView setRegion:region];
[self.mapView addAnnotation:annotation];//EXC_BAD_ACCESS here (iOS 7 no crash)
}
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
CAnnotationView *annotationView = (CAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:MKAnnotationViewReuseIdentifier];
if (!annotationView)
annotationView = [[CAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:MKAnnotationViewReuseIdentifier];
return annotationView;
}
好吧,我发现在 iOS 6 中为我的 CAnnotationView 加载自定义 Nib 会导致崩溃。如果我注释掉加载包,则不会再发生崩溃。
那么在 iOS 6 中子类化 MKAnnotationView 时不支持 nibs 吗?
-(id)initWithAnnotation:(id<MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
if (self){
NSArray *bundle = [[NSBundle mainBundle] loadNibNamed:@"CAnnotationView" owner:self options:nil];
self = [bundle firstObject];
}
return self;
}
这是我创建的一个小测试,它复制了崩溃。在 iOS 6 上运行你会崩溃,在 iOS 7 上你应该看到 MKMapView 上放置的自定义注释。 http://www.levieggert.com/MKMapView/MKMapViewCrashTest.zip
最佳答案
通过将文件所有者的类更改为 CAnnotationView,然后将 nib 中的顶层 View 设为我添加为 subview 的导出,可以解决此问题。
-(id)initWithAnnotation:(id<MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
if (self){
[[NSBundle mainBundle] loadNibNamed:@"CAnnotationView" owner:self options:nil];
[self addSubview:self.view];
}
}
关于iOS 6 addAnnotation EXC_BAD_ACCESS,但在 iOS 7 上没问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23531535/
我正在构建一个应用程序,我将在其中向 map 添加多个注释。作为第一个测试,我尝试了 let anotacao = MKPointAnnotation() anotacao.coordinate.la
在我现在已经精疲力尽的事情上挣扎。这里有两个部分: 1) 如果用户搜索已识别并固定在 ViewDidLoad 上的相同坐标,我会尝试删除固定。这部分有效。不可操作的部分是#2。 2)当用户搜索任何其他
我知道这两个函数都适用于我的 map View 上的多个点 - 我可以循环遍历一组图钉并对每个图钉执行 addAnnotation:pin,或者我可以设置建立一个数组并使用 addAnnotation
我在向 mapView 添加注释时遇到问题。我用这段代码取得了成功: func placeAnnotations() { for _ in placeDetails { let
我尝试在 MKMapView 上添加注释时随机发生随机异常。 那次崩溃只发生在这行代码中,我还有其他几个在我的 map 上添加注释。 在我的 App 中,注释是 NSManagedObject 的子类
我需要一些帮助,因为 addAnnotations 不适用于以下代码: NSString *postString = [[NSString alloc]initWithFormat:@"MM_act=
我有一个应用程序,它是一个 SplitViewController,左侧有一个主视图,右侧有一个详细 View 。其中一个 View (分支查找器)是一个 map View ,可将一系列注释加载到 m
您好,我有一个带有注释对象的 NSMutableArray,下面的代码不会添加注释: 在 .h 中我有 @property (retain, nonatomic) MarketsDataCo
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我有以下简单代码: self.departureAnnotation = [[UserAnnotation alloc] init]; self.departureAnnotation.coordin
您好,我看到这个奇怪的问题,我正在 for 循环中将自己的自定义注释填充到 mkmapview 中,在运行 for 循环 54 次(即第 55 次)后,当我在该行上执行 mkmapview addan
我正在使用 MapKit 并且收到以下错误: locations.count? 即使我将它作为参数放入也不起作用。它说它不允许 Int 作为参数。我不太确定为什么这不起作用。 import UIKit
我希望有人能帮助我解决 iOS 6 上的这个奇怪的崩溃问题。 我正在为 iOS 6 - iOS 7 构建一个应用程序,我正在使用一个 MKMapView 添加了一个 MKPointAnnotation
我有一个 Storyboard的 mapView,一切正常,除了一件事:我通过 RESTful 调用所做的注释并添加到 map mapView.addAnnotation() 直到我触摸并移动 map
我正在尝试在 Swift 中使用 Map Kit。我尝试在 map 上显示区域、一些图钉 (MKPointAnnotation) 和当前位置。我决定扩展类 MKPointAnnotation - 添加
使用 addAnnotations() 添加注释数组后,我需要移动 map (使用鼠标)才能显示注释!这很烦人。哈哈 有人知道如何解决这个问题吗? 最佳答案 建议在主线程进行UI更改,是否在主线程添加
我尝试从 tableView 单元格的地址转到 mapView 并在 map 上显示图钉。 我确定我的代码中的所有内容都不为零。 但是 Xcode 说我的 oldValue 是 nil(在 didSe
我是一名优秀的程序员,十分优秀!