无法识别的选择器发送到UIView实例错误

时间:2013-06-23 17:04:26

标签: iphone ios objective-c

我知道在StackOverflow上有一些解决这个错误的方法,但我找不到一个特定于我的问题。

我正在尝试使用以下方法为Google地图标记信息窗口创建自定义视图:

- (UIViewController *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker {

DMinfoWindow *view =  [[[NSBundle mainBundle] loadNibNamed:@"DMinfoWindow" owner:self options:nil] objectAtIndex:0];
        view.firstName.text = self.firstName;
        return view;
    }

我创建了一个名为DMinfoWindow的UIViewController,它有一个名为firstName的UILabel并链接到IBOutlet。

如果我注释掉“view.firstName.text = self.firstName;”行,它工作正常,当我点击标记时,会出现自定义视图。

但是,如果包含该行,我会收到以下错误:

2013-06-23 17:58:52.763 ExerciseBuddy[1406:1a003] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView firstName]: unrecognized selector sent to instance 0x1623a6e0'

对此错误的任何帮助都会很棒!我假设某些内容不应该在内存中,但我不确定是什么。

非常感谢

1 个答案:

答案 0 :(得分:0)

  

' - [UIView firstName]:无法识别的选择器发送到实例

现在,翻译一下:

    view.firstName.text = self.firstName;

不使用点符号:

    [[view firstName] setText: [self firstName]];

假设这是唯一与firstName混淆的代码行,那么有两个可能失败的地方。

鉴于它抱怨UIView没有实现该方法,我认为[view firstName]失败了。您确定viewDMInfoWindow的实例吗?假设数组中第一个来自nib加载表达式的对象非常脆弱。您应该有一个明确连接到XIB文件所需对象的插座。