如何修复对 'div' 的调用与 Xcode 9 最终版本不明确

How to fixed Call to 'div' is ambiguous with Xcode 9 final release

你有什么想法吗?求助,谢谢。

div_t divHour = div([comps hour],  12); 
return divHour.rem;

并告诉我上面的错误..

这似乎是 C++ 标准库的问题。在 C 中,有一个函数 div() return 是 div_t。在 C++ 中,div() 的多个重载采用不同的参数类型和 return 不同的 return 类型。而且您的调用不明确,因为 [comps hour] return 是 NSInteger,但您的 12int,因此无法确定要使用哪个重载.

有两种合理的方法可以解决这个问题。第一个是转换为 int:

div_t divHour = div((int)[comps hour],  12);

第二种是明确使用long版本:

ldiv_t divHour = div([comps hour],  12l);