1

我知道 StackOverflow 上已经有一些针对此错误的解决方案,但我找不到特定于我的问题的解决方案。

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

- (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'

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

非常感谢

4

1 回答 1

0

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

现在,翻译这个:

    view.firstName.text = self.firstName;

不使用点符号:

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

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

鉴于它抱怨UIView没有实施该方法,我敢打赌它[view firstName]是失败的。你确定view是一个实例DMInfoWindow吗?假设 nib 加载表达式中数组中的第一个对象异常脆弱。您应该有一个明确连接到 XIB 文件所需对象的插座。

于 2013-06-23T17:13:25.557 回答