2013-06-10 2 views
0

У меня есть эти 3 строк в коде, которые предназначены взять текст из текстового файла и передать его на NSAttributedStringПочему эта переменная не является атрибутивной строкой?

NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"txt"]; 
NSString *text = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL]; 

NSAttributedString *attString = [[NSAttributedString alloc] initWithString:text]; 

Используя отладчик, я знаю, что path был найден правильно, и текст добавляются к переменному text штрафу, но его не преобразование в NSAttributedString - отладчик просто говорит «переменный не NSAttributedString»

Что я упускаю из третьей строки, чтобы позволить NSString быть преобразовано в NSSAttributedString? (Я не хочу никаких атрибутов, но Im предполагая, что вы можете просто загрузить строку в приписываемой строку?)

ответ

1

Проблема может прийти откуда-то еще я думаю, просто пытался:

NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"txt"]; 
NSString *text = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL]; 

NSAttributedString *attString = [[NSAttributedString alloc] initWithString:text]; 

NSLog(@"Text : %@\nNSAS : %@", text, attString); 

Вот выход :

2013-06-10 11:17:04.444 TestsSO[5554:c07] Text : hello, world ! 
NSAS : hello, world !{ 
} 

Вы уверены, что text заполнено правильно?

+0

Да, в отладчике я могу запустить команду po text, и он дает весь текстовый файл. Он просто не хочет конвертировать в атрибутивную строку! я уверен, что я просто пропустил небольшую деталь, но я не могу понять, что это такое! – Giovanni

+0

Какой-либо специальный контент в файле? Как я уже сказал, код выше работает для меня. – DCMaxxx

+0

Нет, просто базовый текст с небольшим количеством разметки в нем, который, как я полагаю, является частью кодировки NSUTF8 - только обычные символы включены, ничего необычного – Giovanni

0

попробовать с

NSAttributedString *attString = [[NSAttributedString alloc] initWithString:text attributes:nil]; 

Надеется, что это будет работать.

0

Попробуйте

NSMutableAttributedString *attri_str=[[NSMutableAttributedString alloc]initWithString:text]; 


    [attri_str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:15] range:NSMakeRange(0, 15)]; // Begin and Last letter 

     [attri_str addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:0/255.0 green:143/255.0 blue:255/255.0 alpha:0.75] range:NSMakeRange(0,25)]; 

Я надеюсь, что это поможет вам.

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