2011-08-20 56 views
0

我使用UITableView代表來動態調整我的UITableViewCells的大小,但由於某種原因,下面一段代碼給了我一箇中止信號。它有什麼明顯的問題嗎?幾行代碼導致一個SIGABRT

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 

    NSString *comment = [_comments objectAtIndex:indexPath.row]; 
    CGSize expectedLabelSize = [comment sizeWithFont:[UIFont boldSystemFontOfSize:12.0] constrainedToSize:CGSizeMake(250, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap]; 
    return expectedLabelSize.height; 

} 
+1

你很少會得到一個沒有錯誤信息的SIGABRT。檢查控制檯的日誌,很可能是未捕獲的異常。 – ughoavgfhw

+0

'_comments'可能是一個指向釋放對象的指針,但除非您確定這是導致崩潰的行並顯示如何創建,填充和釋放'_comments',否則不可能說。 – Jonah

+0

@Jonah @ughoavgfhw它是'CGSize'行。 '_comments'沒有解除分配。雖然找到了答案!我添加了一個'comment'字符串的'NSLog',並發現這個字符串等於''或者其他的行。從'[comment sizeWithFont:[UIFont boldSystemFontOfSize:12.0]''將'CGSize'賦值改爲'[[comment sizeWithFont:[UIFont boldSystemFontOfSize:12.0] text]''解決了這個問題。任何人都可以解釋發生在那裏的事情嗎? –

回答

0

改變CGSize分配到

[[comment sizeWithFont:[UIFont boldSystemFontOfSize:12.0] text]

[comment sizeWithFont:[UIFont boldSystemFontOfSize:12.0]固定它。

+1

這是如何解決它的?看起來你正試圖在CGSize上調用'text'! –

+0

@josh查看原始代碼片段。 –