Исторически 33 походит на популярный выбор, и он имеет тенденцию работать вполне прилично. Никто не знает почему все же. Для получения дополнительной информации, взгляд здесь
keepCount - это количество заявлений о праве собственности, которые еще не выполнены для объекта.
Вы становитесь владельцем объекта, если вы создаете его с помощью метода, имя которого начинается с «alloc» или « new »или содержит« копию »(например, alloc, newObject или mutableCopy), или если вы отправляете ему сообщение о сохранении. Все это увеличивает keepCount.
Вы отказываетесь от владения, используя «release» или «autorelease». Они уменьшают значение keepCount.
Однако вам никогда не следует обращать внимание на значение keepCount, это в лучшем случае сбивает с толку, а в худшем - вводит в заблуждение. Просто следуйте правилам управления памятью - станьте владельцем, когда вам нужно сохранить ссылку на объект, и откажитесь от владения, когда закончите, и у вас не будет проблем.
Если вы смотрите на keepCount,
Звучит нормально. Почему это было бы неправильно?
В общем, попытки определить вещи по счету удержания - плохая идея. Нет никаких правил относительно того, сколько раз вы можете удерживать объект. Единственное правило состоит в том, что каждая задержка должна быть уравновешена выпуском.