我使用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;
}
你很少會得到一個沒有錯誤信息的SIGABRT。檢查控制檯的日誌,很可能是未捕獲的異常。 – ughoavgfhw
'_comments'可能是一個指向釋放對象的指針,但除非您確定這是導致崩潰的行並顯示如何創建,填充和釋放'_comments',否則不可能說。 – Jonah
@Jonah @ughoavgfhw它是'CGSize'行。 '_comments'沒有解除分配。雖然找到了答案!我添加了一個'comment'字符串的'NSLog',並發現這個字符串等於''或者其他的行。從'[comment sizeWithFont:[UIFont boldSystemFontOfSize:12.0]''將'CGSize'賦值改爲'[[comment sizeWithFont:[UIFont boldSystemFontOfSize:12.0] text]''解決了這個問題。任何人都可以解釋發生在那裏的事情嗎? –