【发布时间】:2023-04-01 15:14:01
【问题描述】:
我刚刚对方法的返回类型的类型进行了代码更改,并指望编译器显示警告,这将使我能够找到并修复现在发生不匹配的地方。但没有警告。在我的设置中,我发现所有构建类型的“返回类型不匹配”已经是“是”,所以我决定将其更改为“是(视为错误)”并进行了重建。构建结果中仍然没有任何迹象。
然后我将“将警告视为错误”更改为“是”,这产生了一些有用的错误消息,但没有不匹配警告。也许我不了解编译器和 Objective-C 返回类型,但当我的方法指定应该返回 NSNumber* 时,似乎不应该接受 bool。
这是我的代码:
+(NSNumber*) compilerCompletelyFineWithThis
{
if ([m_session tryThis])
{
return [m_session goGetSumthin];
}
else
return false;
}
文档表明不匹配的返回类型与 GCC_WARN_ABOUT_RETURN_TYPE 相关联,但尚不清楚这会强制执行哪些规则。
在我的构建设置的警告部分的下图中,请注意相关设置。我为所有构建打开了“将警告视为错误”和“返回类型不匹配”。
当我违反了方法定义和调用代码之间的这种约定时,有没有办法让 Xcode 通知我?
【问题讨论】:
标签: objective-c xcode compiler-errors compiler-warnings type-mismatch