Проблема при использовании CTFontRef в цикле для создания NSMutableAttributedString - PullRequest
1 голос
/ 14 июня 2011

Мне нужно создать NSMutableAttributedString с разными CTFontRef и CTParagraphStyleRef для другого диапазона в этой строке.

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

CTFontRef normalFontRef = CTFontCreateWithName((CFStringRef)@"CourierNewPSMT", fontsize, NULL);
NSDictionary* normalFontAttribute = [[NSDictionary alloc] initWithObjectsAndKeys:(id)normalFontRef,(NSString*)kCTFontAttributeName, nil];
[attributedString addAttributes:normalFontAttribute range:range];

CFRelease(normalFontRef);
[normalFontAttribute release];
normalFontAttribute = nil;

CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(theSettings, theNumberOfSettings);
NSDictionary* paragraphAttribute = [[NSDictionary alloc] initWithObjectsAndKeys:(id)paragraphStyle,(NSString*)kCTParagraphStyleAttributeName, nil];
[attributedString addAttributes:paragraphAttribute range:range];

CFRelease(paragraphStyle);
paragraphAttribute release];
paragraphAttribute = nil;

Моя проблема:

Приложение вылетает в устройстве после некоторой итерации цикла без каких-либо подробностей. Просто закройте приложение, нет отчета о сбое, нет сообщения в консоли, нет точки останова GDB.

Больше объяснений: Я вызываю этот метод создания NSMutableAttributedString в другом цикле для некоторой другой обработки. Этот цикл является аварийным циклом, а не циклом создания NSMutableAttributedString. Но если я прокомментировал вызов вышеупомянутого метода и использовал create NSMutableAttributedString, он отлично работает, см. Ниже

//works fine
attributtedString = [[NSMutableAttributedString alloc] initWithString:stringContent];

//not working 
attributtedString   = [self createattributtedString:stringContent];
//this createattributtedString: method contain the first listed code 

заранее спасибо,

1 Ответ

0 голосов
/ 27 июня 2011

У вас может быть бесконечный цикл.

...