2010-08-23 61 views
0

我正在面對Core Text API的CTFrameGetLines(frameRef)方法的一個奇怪問題。我得到所有CTLines陣列使用功能CTLine Ref未來nil + CoreText + iPhone

CFArrayRef lines = CTFrameGetLines(frameRef); 

然後我計算沒有。這是目前使用

linesCount = CFArrayGetCount (lines); 

在我的情況linesCount線的即將是28但當我嘗試在行數組索引17獲得線使用

line = (CTLineRef) [(NSArray *)lines objectAtIndex:i]; 

我收到線零。我無法弄清楚linesCount的值是什麼時候變爲28,那麼線陣列中第17個指數的值如何變爲零。需要在指數17處存在一些線。

請幫助我解決這個問題,這真的很緊迫。

Thanx提前, 問候, tek3

回答

1

objectAtIndex:除非接收是零不應返回nil。這意味着'行'是NULL。也許對CTFrameGetLines的調用失敗。這並不能解釋爲什麼CFArrayGetCount會返回28。它每次都返回28嗎? CFArrayGetValueAtIndex返回什麼?

安德魯

0

(CTLineRef)CFArrayGetValueAtIndex(線,I);

使用這種代替的NSArray

線=(CTLineRef)[(NSArray的*)線objectAtIndex:ⅰ];

並使岸上你不釋放線之前。