Вы не должны автоматически выпускать element
, потому что вы не являетесь его владельцем (вы не сохранили его).Вы бы стали его владельцем, если бы приобрели его, используя alloc
, new
или retain
.Поскольку вы приобрели этот объект с именем objectAtIndex:
, вы не являетесь его владельцем.См. Три Волшебных Слова .Вызов autorelease
здесь вызовет сбой, а затем перезапустите.
Ваше имя метода неверно и нарушает KVC.Метод, который начинается с get
, должен иметь указатель, который будет обновлен с результатом.Это должно быть elementForID:
.Как отмечалось выше с тремя магическими словами, присвоение имен в ObjC очень важно для написания стабильного кода
В качестве примечания, в большинстве случаев традиционно используется id
, а не NSObject*
.Они означают немного разные вещи, но обычно id
- это правильно.