单击地图图钉以查看详细信息,得到EXC_BAD_ACCESS

什么古普塔

我已经实现了calloutAccessoryControlTapped这样的:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control
{
    NSLog(@"calloutAccessoryControlTapped: annotation = %@", view.annotation.title);
    if([_delegate respondsToSelector:@selector(mapView:didClickPinButton:)])
    {
        NSString *titleStr =  [(DisplayMap *)view.annotation title];
        [_delegate performSelector:@selector(mapView:didClickPinButton:)withObject:titleStr];
    }
}

当我单击大头针的按钮时,它转到mapView:didClickPinButton主视图控制器上的方法并显示错误:

线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x ......)

这是mapView:didClickPinButton:方法:

- (void) mapView: (MapView *) mapView didClickPinButton:(NSString *) title
{
    NSLog(@"bsn name-->%@",title);
    for(int i=0;i<[self.categoryListArray count];i++)
    {
        NSMutableDictionary *couponDetail = [self.categoryListArray objectAtIndex:i];
        if([[couponDetail objectForKey:@"category_name"] isEqualToString:title])
        {
            NSNumber *coupon_type=[couponDetail objectForKey:@"coupon_type"];
            int c_type = [coupon_type intValue];
            if(c_type == 1)
            {
                [self callServiceForCouponTypeOneBlock:[couponDetail objectForKey:@"id"] ];
                break;
            }
            else if(c_type == 2)
            {
                BusinessViewController *businessVC = [[BusinessViewController       alloc]initWithNibName:@"BusinessViewController" bundle:nil];
                [businessVC setCouponListDetail:couponDetail];
                [self.navigationController pushViewController:businessVC animated:YES];
                break;
            }
        }
    }
用户名

问题是这一行:

[_delegate performSelector:@selector(mapView:didClickPinButton:)withObject:titleStr];

performSelector:withObject:方法只能用于调用具有一个对象参数的方法,而您的mapView:didClickPinButton:方法具有两个对象参数。


可以改用performSelector:withObject:withObject:which来调用带有两个对象参数的方法,如下所示:

[_delegate performSelector:@selector(mapView:didClickPinButton:) 
    withObject:mapView withObject:titleStr];


但是,performSelector似乎并没有必要使用这里。

直接在委托上调用方法要容易得多,所以方法有多少个参数都无关紧要:

[_delegate mapView:mapView didClickPinButton:titleStr];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EXC_BAD_ACCESS错误,无信息

来自分类Dev

调用GLeeInit()会得到EXC_BAD_ACCESS

来自分类Dev

调试EXC_BAD_ACCESS

来自分类Dev

NSDictionary EXC_BAD_ACCESS

来自分类Dev

AFHTTPRequestOperationManager的EXC_BAD_ACCESS

来自分类Dev

EXC_BAD_ACCESS在mergeChangesFromContextDidSaveNotification

来自分类Dev

SKTexture EXC_BAD_ACCESS

来自分类Dev

EXC_BAD_ACCESS StringWithFormat

来自分类Dev

单击按钮时EXC_BAD_ACCESS EXC_I386_GPFLT

来自分类Dev

单击按钮时EXC_BAD_ACCESS EXC_I386_GPFLT

来自分类Dev

查看更多错误详细信息

来自分类Dev

AngularJs查看用户详细信息

来自分类Dev

如何查看显卡详细信息?

来自分类Dev

单击后在新页面中查看MySQL表的单行详细信息

来自分类Dev

单击按钮时在新页面中查看详细信息

来自分类Dev

单击使用 redux 和 reactjs 查看特定用户的详细信息

来自分类Dev

为什么对字符串使用%1 $ s时得到EXC_BAD_ACCESS(格式:)

来自分类Dev

如何测试对象以查看它是否仍然可以接收消息以避免EXC_BAD_ACCESS?

来自分类Dev

EXC_BAD_ACCESS on iOS 8.1 with Dictionary

来自分类Dev

GCD / NSOperationQueue EXC_BAD_ACCESS

来自分类Dev

UIAlertController EXC_BAD_ACCESS错误-Swift

来自分类Dev

指向函数头的EXC_BAD_ACCESS

来自分类Dev

生成nspredicate时EXC_BAD_ACCESS

来自分类Dev

iOS EXC_BAD_ACCESS:如何调试?

来自分类Dev

迅速细分错误(EXC_BAD_ACCESS)

来自分类Dev

如何从EXC_BAD_ACCESS中恢复?

来自分类Dev

SKNode.removeFromParent()EXC_BAD_ACCESS

来自分类Dev

CGContextDrawLinearGradient导致EXC_BAD_ACCESS

来自分类Dev

CCHmac上的EXC_BAD_ACCESS