для управляемых объектов Core Data, созданных Xcode, нужно ли добавить метод dealloc для освобождения переменных? - PullRequest
3 голосов
/ 25 мая 2011

для созданных в Xcode управляемых объектов Core Data, нужно ли добавить метод dealloc для освобождения переменных?

Поэтому, когда у меня есть базовая модель данных для моего приложения для iPhone, и я позволяю XCode генерировать управляемый объектклассы, я отмечаю, что нет метода dealloc.Нужно ли мне вручную «отпускать» в методе dealloc переменные / свойства?

Я вижу, что сгенерированные кодом классы управляемых объектов имеют:

  • свойство помечено "сохранить "в заголовочном файле
  • , в файле реализации он установлен с помощью" @dynamic "(то есть не @sythesise)

благодаря

Ответы [ 3 ]

4 голосов
/ 25 мая 2011

Вам не нужно (и не нужно) изменять эти сгенерированные файлы.@Dynamic означает, что реализации свойств будут предоставлены во время выполнения. Динамические свойства

3 голосов
/ 25 мая 2011

Это две части.Для атрибутов, которые вы определяете в своей модели, не выпускайте их в методе dealloc.Core Data управляет этим для вас.Но если вы добавите другие ivars в генерируемый класс, скажем, у вас есть атрибут imageData, а затем создадите из него UIImage, который вы храните в своем подклассе NSManagedObject, то вам нужно добавить метод dealloc и освободить его, как влюбой другой объект.

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

0 голосов
/ 26 мая 2011

Хотя вам не нужно освобождать управляемые свойства Core Data, вы должны очистить все свойства или переменные экземпляра, созданные вашим подклассом Core Data.Однако нельзя полагаться на то, что dealloc вызывается на подклассах Core Data.Используйте willTurnIntoFault для выполнения необходимой очистки.

...