如何减去两个 NSUInteger 变量?

How can I subtract two NSUInteger variables?

有没有办法用 Objective-C 减去两个或多个 NSUInteger 值?

这是我的代码

__block NSUInteger *removedElementsCount = 0;
__block BOOL lastIsSuperElement = NO;
// Get the elements not collapsed
[_elements enumerateObjectsUsingBlock:^(id  __nonnull obj, NSUInteger idx, BOOL * __nonnull stop) {
    if (_isHidingSubElementsBlock(obj)){
        //_collapseSubCellsAtIndexPathBlock(idx+_elementsOffset);
        [elementToRemove addObject:(Task *)obj];
        lastIsSuperElement = YES;
        [indexPathToRemove addObject:[NSIndexPath indexPathForRow:(idx-removedElementsCount) inSection:0]];
        removedElementsCount = 0;
    } else if (lastIsSuperElement){
        removedElementsCount++;
        lastIsSuperElement = NO;
    }
}];

当我尝试使用 idx-removedElementsCount 创建新的 NSIndexPath 时,出现以下错误:

HTReorderTableCells.m:231:75: Invalid operands to binary expression ('NSUInteger' (aka 'unsigned int') and 'NSUInteger *' (aka 'unsigned int *'))

我一直在寻找解决方案,但我什么也没找到。

将 NSInteger 用于您的解决方案。

NSUInteger value1 = 5;
NSUInteger value2 = 3;
NSInteger subs = value1 - value2;

在您的代码中修复 removedElementsCount 的声明(删除 *)

removedElementsCount 不是 NSUInteger,而是 NSUInteger*(指向整数的指针)。

尝试更改表达式以在减法之前取消引用指针。

idx - (*removedElementsCount)