2013-10-24 12 views
2

Привет Я генерирую строку, состоящую из текстовых записей из текстовых полей.Добавить новую строку в строку

NSString * lines = [NSString stringWithFormat:@"%@,%@,%@,%@,%@", [self.crabText text], [self.trawlText text], [self.trapText text], [self.vesselText text], [self.lengthText text]]; 

Я генерировать строку выше, когда пользователь выбирает «Создать CSV» UIButton, который следует с помощью IBAction. Однако я хочу очистить текстовые поля и добавить новые заполненные записи поверх предыдущих. Тем не менее, только текущие записи текстового поля будут заполнены из-за функции, всегда создающей новый экземпляр строки «lines».

lines = [NSString stringWithFormat: @"%@\n", lines]; 

меня эту работу, поставив все новые строки в массив, но было интересно, если бы можно было просто использовать ту же строку. Примером может служить «1,1,1,1,1» «новая строка» «2,2,2,2,2».

+0

Просто добавь '\ n' к конец первого строкового формата. – rmaddy

ответ

8

Не делайте этого:

NSString * lines = [NSString stringWithFormat:@"%@,%@,%@,%@,%@", [self.crabText text], [self.trawlText text], [self.trapText text], [self.vesselText text], [self.lengthText text]]; 

ли это:

NSArray *fields = @[[self.crabText text], 
        [self.trawlText text], 
        [self.trapText text], 
        [self.vesselText text], 
        [self.lengthText text]]; 
NSString *line = [fields componentsJoinedByString:@","]; 

Затем соединить две линию вместе:

NSArray *lines = @[lineOne, lineTwo]; 
NSString *linesString = [lines componentsJoinedByString:@"\n"]; 
+1

+1 приятный подход, и он также меньше подвержен ошибкам в случае увеличения количества полей. –

+0

Единственное, что я могу получить «lineOne, и lineTwo»? – user2402616

+1

Не задумывайтесь над такими именами переменных. Каждая строка будет отображаться в виде строки. –

1

Да, вы можете использовать NSMutableString и appendString, чтобы добавлять к нему каждый раз.

Смежные вопросы