Olo*_*lof 1 for-loop objective-c
当运行以下代码时,它进入for循环并运行NSLog.为什么会这样?
NSString *aString = nil;
for (int i=0; i<([aString length]-2); i++) {
NSLog(@"Inside loop.");
}
Run Code Online (Sandbox Code Playgroud)
因为我的[aString length]-2结果是-2而且那个小于0?
更确切地说,-[NSString length]返回一个无符号整数,所以从零减去两个(记住,调用任何方法打开nil给你零)不会给你-2,它给你一个非常非常大的数字.将其投射到int(或NSInteger)以获得所需的结果.
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |