我想为我自己的应用程序模拟iPhone的SMS Bubbles。我发现了一些很好的代码(FYI):http://vimeo.com/8718829。它是一个重新设计的UITableView。完全是想要的。
问题在于: - Tableview充满了一系列消息 - 它需要是一个NSMutable数组,因为您想要动态添加消息。 - 当还没有消息时,消息数组为空。 - 但计算一个空的NSMutableArray导致一个异常,应用程序崩溃。 (你需要滚动计数)。
那么什么是一个很好的解决方案呢?我现在用“”填充数组。但那非常难看。你在屏幕上看到一个迷你气泡。
你能隐藏细胞吗?在视频的示例中,已经有2条消息,因此不会出现问题。
欢迎任何建议。 TNX 基督教
答案 0 :(得分: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);
它应该有用。
答案 1 :(得分:1)
你可以计算一个空数组(我假设你的意思是[arrayName count]),只要它的alloc'd所以确保它早先在某处初始化。