我有一个仍在0.40.0
的React Native项目,当我尝试在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
重新生成它,并且在我链接所有内容后它没有帮助。
答案 0 :(得分:5)
问题解释:
if (_total > 0)
=> if ([_total integerValue] > 0)
因为_total
是NSNumber
。 Related question on SO
对于其余部分,React-Native上的问题自1月3日起已commit上修复。 根据提交,它应该在版本> = v0.51.0-rc.3上修复,它仍然固定在the current version上(没有回归)。
然后建议更新您的React版本。