Давайте проанализируем сообщение об ошибке:
Инициализация (NSInteger nt
) делает указатель (*
) из целого числа ([str integerValue]
) без приведения.
Это означает, что вы пытаетесь присвоить переменную не указательного типа ([str integerValue]
, которая возвращает NSInteger
) переменной типа указателя.(NSInteger *
).
Избавьтесь от *
после NSInteger
и с вами все будет в порядке:
NSString *str = [sender currentTitle];
NSInteger nt = [str integerValue]; // this is where the error appears //
NSString *nextScreen = [NSString stringWithFormat:@"Screen_%@.jpg", [screenList objectAtIndex:nt]];
NSInteger
- это типоболочка для машинно-зависимого целочисленного типа данных, который определяется следующим образом:
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif