Изменение fetchedResultsController_ на защищенный от частного - PullRequest
1 голос
/ 23 августа 2011

Код, сгенерированный Xcode при создании приложения на основе навигации, использующего основные данные, объявляет fetchedResultsController_ как личное

@private
    NSFetchedResultsController *fetchedResultsController_;
    NSManagedObjectContext *managedObjectContext_;

Кто-нибудь, пожалуйста, объясните, есть ли причина объявить его частным?

Я намереваюсь создать CommontableViewController и создать его подкласс для использования в приложении панели вкладок с пятью вкладками.Есть ли какие-либо проблемы, если я удалю частную декларацию и сделаю ее защищенной.Мой компилятор не выдает никаких предупреждений, но я беспокоюсь о целостности данных.

1 Ответ

2 голосов
/ 23 августа 2011

Я считаю, что шаблон также добавляет @property объявлений для этих двух переменных; это верно? Если это так, ваши подклассы должны использовать self.fetchedResultsController и self.managedObjectContext вместо прямого доступа к переменным. Таким образом, вы можете поддерживать инкапсуляцию и сохранять переменные закрытыми.

Смысл их конфиденциальности в том, что только суперкласс должен отвечать за настройку хранилища для этих объектов; Подклассы могут просто использовать методы получения, когда они хотят их использовать. Конечно, ничто не загорелось бы, если бы вы решили защитить их, но я не думаю, что это действительно необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...