В чем разница между "_" и "__" в Objective-C? - PullRequest
0 голосов
/ 30 ноября 2010

Я читал, что _ (подчеркивание) используется только для того, чтобы сказать, что переменная / метод / класс предназначена только для API и не должна использоваться другими программистами.

А как насчет __ (двойное подчеркивание)?

В этом примере __block BOOL found = NO;

Из документов Apple о Блочных объектах .

Кроме того, кто-нибудь может помочь мне понять концепцию указатель на указатель ? **var Я прочитал несколько ответов об этом, но на самом деле не понял. Когда и как мне его использовать?

1 Ответ

5 голосов
/ 30 ноября 2010

Одиночное подчеркивание традиционно используется для частного API (методы и иногда ивары). Их главная цель - предотвратить конфликт имен.

__block - ключевое слово для API новых блоков. Как правило, ключевые слова с двойным подчеркиванием предназначены для компилятора.

Для указателей на указатели хорошим примером является NSError: когда метод хочет вернуть новый объект NSError как часть его параметров (не возвращаемое значение), вам нужен указатель на переменную типа NSError *, так что вы можете назначить его. С помощью простого указателя вы можете получить доступ только к объекту, но не можете (повторно) назначить его.

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