Конкатенация 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, поскольку, как вы видите, вызов может быть довольно многословным!

Другие вопросы по тегам