Когда вы пытаетесь присвоить неподписанному целому (NSUInteger
) отрицательное значение, оно часто возвращает очень большое положительное значение.
Вы звоните
NSString *tempDesc = [[[singleton linkedList]objectAtIndex:indexPath.row-1]objectForKey:@"desc"];
когда indexPath.row
имеет значение 0
, поэтому перевод:
NSString *tempDesc = [[[singleton linkedList]objectAtIndex:-1]objectForKey:@"desc"];
Поскольку objectAtIndex:
принимает целое число без знака в качестве параметра, -1
преобразуется в значение мусора 4294967295
.
Чтобы избежать этой проблемы, не вычитайте 1
из 0
, проверив сначала, что indexPath.row
положительно.
Вот еще одна проблема:
NSLog(@"%@", indexPath.row);
Вместо этого следует читать:
NSLog(@"%u", indexPath.row);