Вы можете позвонить по телефону autorelease
в свой методпо классу, чтобы автоповторить экземпляр, если он не оставлен в другом месте.
Поскольку экземпляр класса выполняется в рамках метода класса подключения к базе данных DB, объект, который возвращается экземпляру, не «владеет» им - ваш класс подключения к базе данных. На это, по мнению convention, вам нужно памяти управления экземпляра:
Вы берете право собственности на объект, если вы создаете его, используя метод, имя которого начинается с «Alloc» или «новый» или содержит «копию "(Например, alloc, newObject или mutableCopy), или если вы отправите ему сообщение сохранения. Вы несете ответственность за отказ от владения собственными вами объектами с помощью выпуска или авторекламы. В любое другое время, когда вы получаете объект, вы не должны его отпускать.
Если объект отправка метод GetEntityID
хочет сохранить объект вокруг, например, если оно должно быть использовано в качестве переменной экземпляра, то возвращается объект может быть сохранен, предотвращая его высвобождены в конце текущее событие. Если он используется только локально и не нуждается в обслуживании после текущего события, тогда класс не должен ничего делать; он будет выпущен пулом autorelease в конце текущего события.
This article объясняет больше об авторешетках.
Хороший вопрос, и ответы ниже - это здорово. Просто примечание стиля: имена методов обычно начинаются с строчной буквы, поэтому getEntityByID: предпочтительнее. Он работает, но вы его называете, но соглашения о кодировании могут помочь сделать код более удобным. :-) –