【发布时间】:2015-05-14 07:22:23
【问题描述】:
问题:
昨天我将我的一个大型项目转换为支持 arm64,之后我立即收到 500 多个警告。其中大约 70% 是 NSInteger 被分配给 int 的位置,反之亦然,其余的是 NSUInteger 被格式化为 NSString 的位置,如下所示:
NSInteger a = 123;
NSString *str = [NSString stringWithFormat:@"Int:%d", a]; //warning: value of 'NSInteger' should not be used as formate argument; add an explicit cast to 'unsigned long' instead.
现在我确实知道如何手动处理它们,但这是一项艰巨的任务并且非常费力。 我也知道我可以将类型不匹配警告全部静音,但我不想这样做。当然,它们非常有帮助。
我的尝试:
- 我已使用 find-n-replace 将
[NSNumber numberWithInt:abc];转换为[NSNumber numberWithInt:(int)abc];。它修复了一些。 我还尝试将我的所有 int 属性更改为 NSInteger 属性 但它使警告数量增加了一倍(达到 900 多个)。所以我 已恢复。
我也试过找一些正则表达式但是找不到 适合我需要的东西。
问题:
我正在寻找一个正则表达式或任何其他人尝试过的解决方法,以减少手动修复它们所需的工作量。
提前致谢。
【问题讨论】:
-
我不认为你会找到你要找的东西。它要么修复每个错误(手动),要么全局静音警告。我没有看到中间立场。
-
Apples 提供了一个 ConvertCocoa64 脚本。详情请看我的回答。
标签: objective-c compiler-warnings nsregularexpression arm64 xcode6.3