0

我需要比较两个变量,以检查数组中是否存在索引: indexPath.rowis NSInteger [self arrayOfData].countis 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;
    }
}
4

1 回答 1

0

这是我通过转换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;
    }
}
于 2018-07-06T08:48:31.993 回答