Вы смотрели на NSMutableString ? Он имеет -appendString: методы.
Редактировать: Вы также можете использовать рекурсивную функцию на своем узле для обхода списка и построения строки. Я бы сделал какой-нибудь простой публичный метод, например - (NSString *)description
, чтобы вызвать первый метод, а затем использовать закрытый метод для выполнения вашей грязной работы, например:
- (NSString *)recursiveDescriptionWithSubnode:(Node *)node {
if(!node) {
return [self nodeCharacter];
}
else {
return [[self nodeCharacter] stringByAppendingString:[self recursiveDescriptionWithSubnode:[self nextNode]];
}
}
Обратите внимание, что это не хвостовая рекурсия, и поэтому для длинного списка это приведет к созданию значительного пула автоматического выпуска и стека вызовов. Создание рекурсивного хвоста оставлено читателю в качестве упражнения (но вы можете использовать NSMutableString
для этого).