这是karthik。当我运行我的应用程序时,我收到以下错误。当我的应用程序试图找到其崩溃的用户位置时。实际上在 IOS 4.0 和 4.1 中它的工作正常。只有在4.2崩溃。你能救我吗?
CoreAnimation:忽略异常: (null)必须在何时实现title 对于correspoding,canShowCallout为YES 视图>可见:0 +0.00000000,+ 0.00000000 2011-05-09 12:32:40.631 HOV [1821:207] * 由于未被捕获而终止应用程序 异常'NSGenericException', 原因:'> 可见:0 +38.91791916,-77.20580292 必须在何时实施标题 对于correspoding,canShowCallout为YES 视图>可见:0 +38.91791916,-77.20580292' * 首先调用堆栈:
答案 0 :(得分:3)
您应该完成错误文本告诉您的内容:您的MkAnnotation委托应该实现
- (NSString*)title
方法,它提供要在标注视图中显示的文本。 该方法是可选的,只有在将canShowCallout设置为YES时才会调用该方法。
答案 1 :(得分:0)
检查注释视图中的标题。我认为标题有时会设置为空...
答案 2 :(得分:0)
检查所有绘制的注释。我认为有一种情况是注释没有导致此崩溃的标题。检查所有注释是否都有标题值。
答案 3 :(得分:0)
在iOS 4.2.1上运行时遇到了同样的错误。该应用程序在iOS 5.x上没有崩溃。我还确保Annotations使用了所有已实现的title
方法。
事实证明,当时传递给selectAnnotation:animated:
的注释为零。
这解释了错误消息提到(null)的原因。即使没有定义注释,iOS 4.2.1似乎也会检查title
方法。
CoreAnimation: ignoring exception: (null) must implement title when canShowCallout is YES on correspoding view
所以通过在调用selectAnnotation:animated:
之前确保注释不是nil来解决这个问题。
答案 4 :(得分:0)
我有类似的问题。在我的例子中,方法-(MKAnnotationView *)mapView:(MKMapView *)mView viewForAnnotation:(id<MKAnnotation>)ann{ }
被调用了两次。所以我把以下代码放在那里对我有用:
if (myAnnotation == annotation) {
[pinView setCanShowCallout:YES];
}