NSNotFound定义为NSIntegerMax,定义为LONG_MAX.
NSRange.location被定义为a NSUInteger.
一些Foundation方法返回NSRange其位置值为的NSNotFound.
所以,经常做这种比较:
if (aRange.location == NSNotFound)
Run Code Online (Sandbox Code Playgroud)
但这不是应该生成警告的有符号和无符号整数之间的比较吗?
Eik*_*iko 12
您正在将无符号(64位)变量与有符号常量进行比较,该常量也适合变量的范围(它不是负数).所以不需要警告.
通常在与两侧的负常数或变量进行比较时出现警告(即一个部分是或可以是负数而另一个部分只是正数或零).
旁注:NSNotFound在32位与64位平台上有所不同,因此请勿在任何地方硬编码或存储该值.
| 归档时间: |
|
| 查看次数: |
6846 次 |
| 最近记录: |