mkmapview在IOS 4.2中崩溃

时间:2011-05-09 07:02:34

标签: iphone ios mkmapview

这是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'   * 首先调用堆栈:

5 个答案:

答案 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];

}