Разрывы строк в NSString, возвращенные из PList, не работают - PullRequest
0 голосов
/ 18 марта 2010

Я видел этот пост: NSString: экранирование новой строки в plist , но я хотел бы знать, есть ли способ прагматически отображать \ n разрывы строк.

Я сейчас использую:

decisionText.text = [NSString stringWithFormat: (@"%@", [replies objectAtIndex:(arc4random() % [replies count])])];

Который случайным образом извлекает строку из массива replies. Массив был загружен из списка примерно так:

replies = [[NSMutableArray alloc] initWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"AdviceList" ofType:@"plist"]];

Что мне не хватает? Ответ не может состоять в том, чтобы вручную вводить разрывы строк. Это не программирование! (Похоже, обработка текста для меня.)

Ответы [ 2 ]

2 голосов
/ 18 марта 2010

Моше: Что ты пытаешься сделать? Если вы пытаетесь отобразить текст в UILabel, вам нужно установить количество строк (setNumberOfLines:, 0 означает неограниченное количество). Затем установите текст (-[UILabel setText:]) и скажите метке изменить размер (-[UILabel sizeToFit]). Теперь метка будет правильно разбивать строки, чтобы они поместились в пространстве.

Удачи.

1 голос
/ 18 марта 2010

Не имеет отношения к вашей первоначальной проблеме, но все еще проблема: -

[NSString stringWithFormat: (@"%@", etc)];

Это выражение не выполняет действия, которое вы действительно хотите. Дополнительная скобка означает, что выражение запятой , где @"%@" будет игнорироваться и станет

[NSString stringWithFormat: etc];

Не должно быть круглых скобок в вызове variadic. Пожалуйста, используйте

[NSString stringWithFormat:@"%@", etc];

Это можно записать более эффективно как [etc description].

...