Это основные понятия в Objective-C, но вот краткое изложение:
Члены экземпляра обычно считаются частными, и вам никогда не следует обращаться к членам экземпляра других объектов, кроме как через средства доступа. Отсюда необходимость в
объявления свойств подобны определениям методов; @property (…, readonly) NSManagedObjectModel *managedObjectModel;
- это , в основном , то же самое, что и - (NSManagedObjectModel *)managedObjectModel;
, за исключением того факта, что он допускает точечную запись.
Категория используется, чтобы скрыть эти средства доступа от пользователей класса (по любой причине); отсюда и название PrivateCoreDataStack
. Категория - причина, по которой дот-нотация работает; если вы удалите его, он не будет.
Что касается имен; имена методов и имена членов экземпляров живут в отдельных пространствах имен; это означает, что они могут иметь одинаковое имя; это очень удобно, потому что говорит вам, что - (id)somePropery;
доступ id someProperty;
; или что @property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
обращается NSManagedObjectContext *managedObjectContext
.