Что произойдет, если UITableViewCell не будет выпущен? - PullRequest
0 голосов
/ 22 июля 2010

Что произойдет, если авторелиз удалится из сотворенной ячейки в

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {    

STVCell *cell = (STVCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [[[STVCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        }
}

Ответы [ 2 ]

4 голосов
/ 22 июля 2010

Это приведет к утечке памяти.

Поскольку вы звоните alloc, вы также отвечаете за вызов release (или в данном случае autorelease).

UITableView автоматически сохранит ячейку и освободит свое использование ячейки в соответствующее время, но если ваш код также не освобождает ссылку, которую он содержит, ячейка никогда не может быть освобождена.

1 голос
/ 22 июля 2010

Ничего.И это плохо: ячейка никогда не освободится и не станет утечкой памяти.

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