Что-то я вижу, что люди определяют переменную как это:
b2World *_world;
b2Body *_body;
CCSprite *_ball;
вместо
b2World *world;
b2Body *body;
CCSprite *ball;
Я знакомый со вторым, но не первым. Так, я проверил Википедию о соглашении о присвоении имен:
Имена, начинающиеся с двойного подчеркивания или подчеркивания и прописной буквы, резервируются для реализации (компилятор, стандартная библиотека) и не должны использоваться (например, __ зарезервированный или _Reserved).
Так, то, что какое-либо особое значение, которое является запуском с "_"?
Код, который я видел, который использование "_" для начала здесь:
http://www.raywenderlich.com/457/intro-to-box2d-with-cocos2d-tutorial-bouncing-balls
Некоторые разработчики Objective-C установили давнее соглашение о префиксе переменных экземпляра с помощью символа подчеркивания. Это может быть полезно по-разному: во-первых, упрощает поиск переменных экземпляра в файле .m; во-вторых, это избавляет разработчиков от необходимости придумывать творческие имена для параметров методов, чтобы избежать конфликтов с именами переменных экземпляра; и в-третьих, как отмечали другие, это указывает на то, что переменные экземпляра являются частными и, следовательно, не должны быть доступны волей-неволей во всем коде.
На самом деле, я бы рекомендовал избегать прямого доступа к переменным экземпляра в методах, отличных от методов доступа (геттеры и сеттеры), -dealloc
и -init ...
. Не то, чтобы вы никогда не использовали их где-либо еще, но вы должны хотя бы немного подумать, прежде чем использовать переменную экземпляра непосредственно в других методах.
Apple резервирует имена, начинающиеся с подчеркивания, для своих частных ivars и методов. В Objective-C на любой платформе Apple не рекомендуется ставить перед идентификаторами знак подчеркивания.
Обычно они используются для переменных, к которым нельзя обращаться за пределами текущего файла / модуля / пространства имен / чего угодно, на языках, которые не поддерживают ограничение доступ с помощью чего-то вроде частного
ключевого слова