[英]Comparing NSInteger and NSUInteger
我需要比较两个变量,以检查数组中是否存在索引: indexPath.row
是NSInteger [self arrayOfData].count
indexPath.row
是NSUInteger
问题是它们的类型不同,当indexPath.row
= -1时,它会自动转换为18446744073709551615(无符号长),这是我要避免的。
如何检查由NSIndexPath
的行定义的索引在NSArray
是否存在?
码:
- (void) checkIfIndexExists:(NSIndexPath*) indexPath inArray:(NSArray*)arrayOfData {
if (indexPath.row >= [self arrayOfData].count) { // indexPath.row=-1 gets interpretted as 18446744073709551615 (unsigned long)
DDLogDebug(@"Warning: Index doesn't exist {%@}", indexPath);
return;
}
}
这是我如何铸造解决了这个问题unsigned long
到long
- (void) checkIfIndexExists:(NSIndexPath*) indexPath inArray:(NSArray*)arrayOfData {
if (indexPath.row >= (long) [self arrayOfData].count) { // indexPath.row=-1 gets interpretted as 18446744073709551615 (unsigned long)
DDLogDebug(@"Warning: Index doesn't exist {%@}", indexPath);
return;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.