Я пытаюсь понять, как взять NSAttributedString и использовать его в основном тексте на iPad. Я посмотрел одно из видео WWDC (110), в котором есть слайды (но нет исходного кода), и в нем описывается, как создать NSAttributedString, а затем просто поместить его в CTFramesetterRef:
CTFontRef helveticaBold = CTFontCreateWithName( CFSTR("Helvetica-Bold"), 24.0, NULL);
NSString* unicodeString = NSLocalizedString(@"TitleString", @"Window Title");
CGColorRef color = [UIColor blueColor].CGColor; NSNumber* underline = [NSNumber numberWithInt:kCTUnderlineStyleSingle|kCTUnderlinePatternDot];
NSDictionary* attributesDict = [NSDictionary dictionaryWithObjectsAndKeys:helveticaBold, (NSString*)kCTFontAttributeName, color, (NSString*)kCTForegroundColorAttributeName, underline, (NSString*)kCTUnderlineStyleAttributeName, nil];
NSAttributedString* stringToDraw = [[NSAttributedString alloc] initWithString:unicodeString attributes:attributesDict];
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(stringToDraw);
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, 0), path, NULL);
CFRelease(framesetter);
CTFrameDraw(frame, context);
CFRelease(frame);
Но когда я пытаюсь это сделать, он выдает ошибку:
Передача аргумента 1 'CTFramesetterCreateWithAttributedString' из несовместимого типа указателя
Являются ли CFAttributedString и NSAttributedString «бесплатными мостами»? Я где-то читал, что это верно только для OSX, но именно так Apple делает это в своей демонстрации...
Спасибо!
:-Джо