Ваш диапазон длиной 0 элементов:
CFRangeMake(i, 0)
Вы хотели сделать его длиной 1 элемент:
CFRangeMake(i, 1)
РЕДАКТИРОВАНИЕ:
Я простопопробовал следующий код и без проблем получил разные источники для каждой строки.Я вынул ваш «индексный» код, потому что я не знал, какой индекс должен быть установлен, и я хотел продемонстрировать, что я могу получить все исходные строки (что я мог).
CTFramesetterRef
framesetter = CTFramesetterCreateWithAttributedString(attrString);
CFArrayRef paths = [self copyPaths];
CFIndex pathCount = CFArrayGetCount(paths);
CFIndex charIndex = 0;
for (CFIndex pathIndex = 0; pathIndex < pathCount; ++pathIndex) {
CGPathRef path = CFArrayGetValueAtIndex(paths, pathIndex);
CTFrameRef
frame = CTFramesetterCreateFrame(framesetter,
CFRangeMake(charIndex, 0),
path,
NULL);
NSArray *lines = (__bridge id)CTFrameGetLines(frame);
for (int i = 0; i < [lines count]; i++)
{
CTLineRef line = (__bridge CTLineRef) [lines objectAtIndex:i];
CFRange range = CTLineGetStringRange(line);
CGPoint origin;
CGFloat ascent, descent;
CTLineGetTypographicBounds(line, &ascent, &descent, NULL);
CTFrameGetLineOrigins(frame, CFRangeMake(i, 1), &origin);
CGFloat xPos = origin.x; // + CTLineGetOffsetForStringIndex(line, index, NULL);
NSLog(@"%@", NSStringFromCGRect(CGRectMake(xPos, origin.y - descent, 3, ascent + descent)));
}
Это выводит в моем случае:
2012-03-21 18:28:19.834 Columns[9370:f803] {{0, 929.24}, {3, 12}}
2012-03-21 18:28:19.835 Columns[9370:f803] {{0, 914.24}, {3, 12}}
2012-03-21 18:28:19.835 Columns[9370:f803] {{0, 899.24}, {3, 12}}
2012-03-21 18:28:19.836 Columns[9370:f803] {{0, 884.24}, {3, 12}}
2012-03-21 18:28:19.836 Columns[9370:f803] {{0, 869.24}, {3, 12}}
2012-03-21 18:28:19.836 Columns[9370:f803] {{0, 854.24}, {3, 12}}
2012-03-21 18:28:19.837 Columns[9370:f803] {{0, 839.24}, {3, 12}}
2012-03-21 18:28:19.837 Columns[9370:f803] {{0, 824.24}, {3, 12}}
2012-03-21 18:28:19.838 Columns[9370:f803] {{0, 809.24}, {3, 12}}
2012-03-21 18:28:19.838 Columns[9370:f803] {{0, 794.24}, {3, 12}}
2012-03-21 18:28:19.838 Columns[9370:f803] {{0, 779.24}, {3, 12}}
2012-03-21 18:28:19.839 Columns[9370:f803] {{0, 764.24}, {3, 12}}
...