objective-c - 比较 NSInteger 和 NSUInteger
问题描述
我需要比较两个变量,以检查数组中是否存在索引:
indexPath.row
is NSInteger
[self arrayOfData].count
is 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;
}
}
推荐阅读
- module - 如何分解 terraform 状态文件
- xml - 在xml中,为什么在某些情况下我们使用
在某些情况下,我们使用 内容 ? - python - 在 Python (V. 3.8.1) 中使用 OAuth2 身份验证时如何处理 HTTPError 403?
- node.js - Jelastic 在 nodejs 应用程序上给出 502
- c# - C# SP-API 为 getReportDocument 提供签名错误,但它适用于其他方法
- web - 已验证网站的 Search Console 问题
- python - Heroku 配置变量通过 CLI 可见,但通过代码不可见
- reactjs - 使用 react modal bootstrap 编辑地图列表中的项目
- javascript - 更改要约搜索半径
- python - 如何更改另一个列表中列表项的值?