Как предотвратить подсчет пустого NSMutableArray - PullRequest
1 голос
/ 09 октября 2010

Я бы хотел смоделировать SMS-пузыри iPhone для моего собственного приложения.Я нашел хороший код здесь (FYI): http://vimeo.com/8718829.Это рестайлинговый UITableView.Именно то, что хотел.

Вот проблема: - Tableview заполнен массивом сообщений - Это должен быть массив NSMutable, потому что вы хотите добавлять сообщения на лету.- Когда еще нет сообщений, массив сообщений пуст.- Но подсчет пустого NSMutableArray вызывает исключение, приложение вылетает.(вам нужен счетчик для прокрутки).

Так что же является хорошим решением для этого?Теперь я предварительно заполнить массив "".Но это очень уродливо.Вы видите мини-пузырь на экране.

Можете ли вы скрыть клетки?В примере на видео уже есть 2 сообщения, поэтому проблема не возникает.

Любые предложения приветствуются.Tnx Christian

Ответы [ 2 ]

2 голосов
/ 09 октября 2010

На самом деле подсчет пустого массива не вызывает никаких исключений.Я думаю, что проблема здесь:

- (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 голос
/ 09 октября 2010

Вы можете сосчитать пустой массив (я предполагаю, что вы имеете в виду [arrayName count]), пока его alloc'd, поэтому убедитесь, что он инициализирован где-то раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...