Почему некоторые ивары имеют префикс двойного подчеркивания? - PullRequest
3 голосов
/ 20 сентября 2011

Когда XCode создает синтезирующие операторы в шаблонах Apple, вы увидите что-то вроде:

@synthesize ivar=_ivar;

Итак, я получаю единственное подчеркивание и то, как вы называете ивары по-другому, чем свойства, чтобы убедиться, что вы не случайнополучить к ним доступ и т. д. *

Я только что начал проект базовых данных, и в созданных шаблонах инструкциях у меня есть:

@synthesize managedObjectContext=__managedObjectContext;

@synthesize managedObjectModel=__managedObjectModel;

@synthesize persistentStoreCoordinator=__persistentStoreCoordinator;

Почему двойное подчеркивание для основных данных связано симена ивара?Это просто синтаксис Apple?Не уверен, что есть что-то большее, чем это, и если это то, что мне нужно знать - Google не очень помог.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 20 сентября 2011

Предполагается, что ведущие двойные подчеркивания должны быть зарезервированы исключительно для библиотек компилятора и языка. Однако Apple решила также использовать их для Core Data. Мы, простые смертные разработчики, не должны использовать двойное подчеркивание.

4 голосов
/ 20 сентября 2011

Компилятор Objective C обрабатывает все имена переменных одинаково, поэтому двойное подчеркивание - это просто соглашение. Однако двойное (или одиночное) подчеркивание, за которым следует заглавная буква, зарезервировано для использования компилятором.

Кроме того, проверьте ответы на этот вопрос, они более глубоки, чем я могу объяснить.

...