Объединение объектов в Objective-C - PullRequest
1 голос
/ 05 мая 2010

Есть ли хороший способ сделать это в Objective-C или я должен написать свою утомительную логику?

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

Ответы [ 3 ]

8 голосов
/ 03 ноября 2010

Платформа Sparrow для iPhone содержит класс под названием "SPPoolObject". Фреймворк использует его внутренне для вспомогательных объектов, которые используются очень часто, таких как точки, прямоугольники или матрицы.

Если вы наследуете от SPPoolObject, метод dealloc на самом деле не удаляет его; вместо этого память будет повторно использована для следующего выделенного объекта.

Это довольно простой класс - вы можете легко использовать его для своих проектов. Он не имеет никакой зависимости, так что вы можете легко извлечь его из среды Sparrow;)

1 голос
/ 05 мая 2010

Ни Какао, ни Objective-C не делают ничего особенно полезного для пулов объектов. Они тоже ничего не делают, чтобы остановить вас, но вам, в основном, придется заниматься своими делами.

0 голосов
/ 27 января 2012

Я думаю, что в табличном представлении есть какой-то механизм объединения для различных TableCell

что-то вроде этого:

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

Не уверен, что есть что-то более общее для использования.

...