Строка и целое число являются принципиально разными типами данных, и приведение в Objective-C не будет выполнять преобразование для вас в этом случае, оно будет просто лгать компилятору о том, что происходит (поэтому он компилируется), но приво время выполнения он взрывается.
Вы можете встроить целое число непосредственно в строку формата, используя %d
вместо %@
:
tempString = [NSString stringWithFormat:@"%@%d%@%d", part1,num1, part2, num2];
NSInteger - просто причудливое имядля обычного "int" (число).NSString - это объектная ссылка на строковый объект.Некоторые числовые типы (int и числа с плавающей запятой) могут быть как-то преобразованы между собой непосредственно в C, как это, но эти два вообще не совместимы.Похоже, вы пришли из более разрешительного языка?:)