2017-05-12 139 views
0

我已经拿出这个项目,并开始再次工作,我收到以下错误;不兼容的指针类型Xcode

- (UIView *)mapView:(GMSMapView*)mapView markerInfoWindow:(GMSMarker*)marker 
{ 
    CustomInfoWindow *InfoWindow = [[[NSBundle mainBundle] loadNibNamed:@"InfoWindow" owner:self options:nil] objectAtIndex:0]; 
    return InfoWindow; 
} 

不兼容的指针类型返回 'CustomInfoWindow *' 从结果类型的函数 '的UIView *'

+2

'CustomInfoWindow'的类型是什么? – ozgur

+3

“CustomInfoWindow”的@interface是什么?该错误消息表明它不是UIView的子类。 –

+0

@interface CustomInfoWindow:UIViewController 对于视图控制器中的谷歌地图 – AFarm

回答

1
CustomInfoWindow *InfoWindow = [[[NSBundle mainBundle] loadNibNamed:@"InfoWindow" owner:self options:nil] objectAtIndex:0]; 
return InfoWindow.view; 

要返回视图 - 控制其错误的,因为函数的返回类型为UIView的类型 所以,请返回viewcontroller的视图。 用此更新您的代码并尝试

0

您是否检查了文档是否可以像上面那样使用?

如果你使用像上面则显示错误

,因为它必须返回的UIView

Google Map iOS Document Says

markerInfoWindow调用时标记即将成为选择,并 提供了一个选择如果此 方法返回UIView,则用于该标记的离子定制信息窗口。

如果在调用此方法之后更改此视图 ,则这些更改不一定会反映在 呈现的版本中。

返回的UIView在任一维度上的边界不得大于 。

由于没有在任何时间仅示出一个信息窗口 ,返回的视图可以被其他信息 窗口之间重复使用。

在此调用期间从地图中删除标记或更改地图的 选定标记会导致未定义的行为。