2015-09-22 7 views
0

Я пытаюсь настроить строку «Добавить как событие 1» («Событие 1» выделено жирным шрифтом), а затем сохранить строку в изменяемом массиве. Вот мои коды:Как хранить NSMutableAttributedString в массиве

NSString *string1 = @"Add as Event 1"; 
NSMutableArray *eventsData; 
NSMutableAttributedString *attrString1 = [[NSMutableAttributedString alloc]initWithString:string1]; 
CTFontRef helvetica = CTFontCreateWithName(CFSTR("Avenir-Book"), 14.0, NULL); 
CTFontRef helveticaBold = CTFontCreateWithName(CFSTR("Avenir-Heavy"), 14.0, NULL); 
[attrString1 addAttribute:(id)kCTFontAttributeName 
       value:(__bridge id)helvetica 
       range:NSMakeRange(0, [attrString1 length])]; 
[attrString1 addAttribute:(id)kCTFontAttributeName 
       value:(__bridge id)helveticaBold 
       range:NSMakeRange(7, 7)]; 
eventsData = [[NSMutableArray alloc] initWithObjects: attrString1, nil]; 

Но в массиве eventsData я нашел все ограничения с attrString1 были сохранены. Но мне нужна только настраиваемая строка в массиве, потому что позже я передам значение в ярлык в UITableviewCell. Вот что я хранил в массиве:

2015-09-22 13:22:18.574 addEventUI[33834:4374868] Add as { 
NSFont = "<UICTFont: 0x7ae6bce0> font-family: \"Avenir-Book\"; font-weight: normal; font-style: normal; font-size: 14.00pt"; 
}Event 1{ 
NSFont = "<UICTFont: 0x7ae6bdd0> font-family: \"Avenir-Heavy\"; font-weight: bold; font-style: normal; font-size: 14.00pt"; 
} 

Может ли кто-нибудь сказать мне, как это сделать? Огромное спасибо.

ответ

0

Я думаю, вы очень близки к тому, что хотите. Создайте строку и добавьте ее в массив, поскольку у вас в настоящее время есть ***. Позже, если вы хотите использовать либо обычную строку или приписываемую строку, вы можете сделать это ...

// assume eventsData has at least one attributed string in it 
NSMutableAttributedString *attributedString = eventsData[0]; 

// assign the plain string to a label like this 
myLabel.text = attributedString.string; 

// assign it with attributes to a label like this 
myLabel.attributedText = attributedString; 

*** Там какая-то возможность улучшить код, который создает приписываемую строку и массив eventsData, но я думаю, что это связано с основным вопросом.

+0

Большое спасибо. Теперь работает :) –