2010-10-08 75 views
1

我想模擬iPhone的SMS Bubbles爲我自己的應用程序。我發現了一些不錯的代碼(FYI):http://vimeo.com/8718829。這是一個重新調整的UITableView。究竟是什麼想要的。如何防止計數空的NSMutableArray

問題出在這裏: - Tableview中充滿了一個消息數組 - 它需要是一個NSMutable數組,因爲您希望隨時添加消息。 - 當還沒有消息時,消息數組是空的。 - 但計數一個空的NSMutableArray會導致懷疑,應用程序崩潰。 (你需要計數滾動)。

那麼什麼是一個很好的解決方案呢?我現在預先用「」填充數組。但這非常醜陋。你在屏幕上看到一個迷你泡泡。

你能隱藏細胞嗎?在視頻示例中,已有2條消息,因此不會出現問題。

任何建議是值得歡迎的。 Tnx Christian

回答

2

實際上,對一個空數組進行計數不會引發任何異常。我認爲問題在這裏:

- (void)add { 
    if(![field.text isEqualToString:@""]) 
    { 
     [messages addObject:field.text]; 
     [tbl reloadData]; 
     NSUInteger index = [messages count] - 1; 
     [tbl scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES]; 

     field.text = @""; 
    } 
} 

由於「-1」索引不能存在。你可以編輯該行到

 NSUInteger index = MAX(0, [messages count] - 1); 

它應該工作。

+0

是的,寫下來對我有一定的治療作用。我添加了一個NSInteger作爲計數器。每次添加消息時都會加起來。這工作。 – Chrizzz 2010-10-08 21:02:17

+0

但我猜Michele的答案也是對的。這確實與這條線有關。我希望我早點知道這個解決方案。所以謝謝你提供它。 (我以爲我讀了一個NSArray可以被計數爲0,但不是一個NSMutableArray。顯然我錯了,Sry。) – Chrizzz 2010-10-08 21:05:23

1

只要它的alloc'd確定了它的初始化位置,你就可以計算一個空數組(我假設你的意思是[arrayName count])。