У меня есть две переменные, которые мне нужно сравнить, чтобы проверить, существует ли индекс в массиве:
indexPath.row
- NSInteger
[self arrayOfData].count
- это 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;
}
}