Конкатенация int со строкой в Objective-c
Как мне соединить int length
к строке, которую я пытаюсь вставить в этот массив, так что это " C10 " заданной длины == 10, конечно. я вижу @"%d", intVarName
способ сделать это использовал еще где. На Яве я бы сделал "C" + length;
, Я использую replaceObjectAtIndex
метод для замены пустой строки "", которую я ранее заполнил MSMutableArray
"доска" с. Я получаю ошибку, хотя, когда я добавляю @"C%d", length
часть в конце этого метода (от второй до последней строки, выше i++
)
Как часть моей домашней работы, я должен произвольно поместить "желоба" (представленные строкой формата "C'length_of_chute"), в этом первом назначении они всегда будут иметь длину 10, так что это будет просто "C10") на игровое поле представлено массивом.
-(void)makeChutes: (int) length {// ??Change input to Negative number, Nvm.
//??Make argument number of Chutes ??randomly?? across the board.
for(int i = 0; i < length;){
int random = arc4random_uniform(101);
if ([[board objectAtIndex:random] isEqual:@""]) {
//[board insertObject:@"C%d",length atIndex:random];
[board replaceObjectAtIndex:random withObject:@"C%d",length];
i++;
}
}
}
Пожалуйста, игнорируйте дополнительный и ненужный код, я оставил его для контекста.
1 ответ
В Objective-C stringWithFormat
Метод используется для форматирования строк:
NSString *formattedString = [NSString stringWithFormat:@"C%d", length];
[someArray insertObject:formattedString];
Зачастую проще создать отформатированную строку в отдельной строке в Objective-C, поскольку, как вы видите, вызов может быть довольно многословным!