“无法使用类型BAR的右值初始化FOO类型的返回对象”是什么意思?

时间:2012-06-13 00:36:08

标签: objective-c

我认为'rvalue'只是返回值的简写。 初始化返回对象意味着什么?这是我的主要问题。其余的是我特殊情况的背景,但我真的对一般答案感兴趣。

我正在看别人的代码:

return [p_facebook.facebook handleOpenURL:url];

理论上这是在呼唤:

- (BOOL)handleOpenURL:(NSURL *)url;

我看到了:Cannot initialize return object of type 'BOOL' (aka 'signed char') with an rvalue of type 'id'。我猜这个类可能在其他地方定义,我有一个路径问题......

1 个答案:

答案 0 :(得分:6)

在此上下文中,rvalue不是“返回值”,而是(粗略地)“右手值”的简写,或者出现在赋值或语句右侧的对象。我认为您可能会在-handleOpenURL:的实现中发现它在某个时刻返回类型为id的对象,这显然与声明的BOOL返回类型不兼容。如果您有权访问-handleOpenURL:的来源,我建议先在那里查看错误的退货。

相关问题