我有一个 React Native 项目仍在0.40.0
上,当我尝试在 XCode for Simulator 中构建时:
Ordered comparison between pointer and zero ('NSNumber *' and 'int')
它在文件中RCTJavaScriptLoader.mm
React.xcodeproj
>React
>Base
因为此错误发生在 React Native 文件中,所以我不知道它试图告诉我什么。代码块为:
- (NSString *)description
{
NSMutableString *desc = [NSMutableString new];
[desc appendString:_status ?: @"Loading"];
if (_total > 0) { // ERROR HAPPENS HERE
[desc appendFormat:@" %ld%% (%@/%@)", (long)(100 * [_done integerValue] / [_total integerValue]), _done, _total];
}
[desc appendString:@"u2026"];
return desc;
}
我试图清理该项目,我什至删除了ios文件夹并使用react-native upgrade
重新生成了它,但在我链接所有内容后它没有帮助。
关于这个问题的解释:if (_total > 0)
=>if ([_total integerValue] > 0)
因为_total
是一个NSNumber
。关于SO的相关问题。
对于其余的,这是 React-Native 上的问题,自 1 月 3 日以来已在该提交中修复。 根据提交,它应该在版本>= v0.51.0-rc.3 上修复,并且仍然固定在当前版本上(无回归)。
然后建议更新你的 React 版本。
这是旧版本的 React Native 和 XCode 9.3 的问题,已在 7123618a 上修复
要么将您的 react 本机应用程序升级到高于 ~0.51.0 的版本,要么将 XCode 降级到低于 ~9.2 的版本