Возможно, Вы ищете что-то вроде этого:
StackFrame frame = new StackFrame(1);
frame.GetMethod().Name; //Gets the current method name
MethodBase method = frame.GetMethod();
method.DeclaringType.Name //Gets the current class name
Вы можете использовать ключевое слово @private
внутри {}
, чтобы сделать все последующие объявления переменных закрытыми. Видимость по умолчанию - @protected
(что аналогично protected
в Java), и это обычно хорошо работает. Вам нужно будет специально объявить переменную как @public
, чтобы она была доступна напрямую за пределами класса.
В этой документации Apple есть дополнительные сведения о области видимости и видимости переменных.
Там также разница между «частным API» и частными переменными. В Objective-C вы не можете делать методы закрытыми - любой может вызывать любой метод. Есть несколько способов создания «секретных» методов, но это несколько выходит за рамки этого вопроса. Вот несколько связанных вопросов SO:
Что касается ведущего символа _ перед переменными, имейте в виду, что Apple также резервирует этот префикс для «частных» методов. Лучший способ гарантировать избежание проблем - использовать обычные соглашения об именах для ваших собственных переменных и методов. Однако, если вы не подклассифицируете что-то из Cocoa (кроме NSObject), вы можете быть уверены, что не столкнетесь с проблемами.
Лучший способ гарантировать избежание проблем - использовать обычные соглашения об именах для ваших собственных переменных и методов. Однако, если вы не подклассифицируете что-то из Cocoa (кроме NSObject), вы можете быть уверены, что не столкнетесь с проблемами. Лучший способ гарантировать избежание проблем - использовать обычные соглашения об именах для ваших собственных переменных и методов. Однако, если вы не подклассифицируете что-то из Cocoa (кроме NSObject), вы можете быть уверены, что не столкнетесь с проблемами.Все переменные в Objective-C защищены по умолчанию. Если вы не напишите методы доступа, другие классы не смогут видеть переменные.
Двумя исключениями являются категории и подклассы.
В документации Apple для именования переменных экземпляра не содержится явных предупреждений против использования подчеркивания в имени переменных экземпляра, как это делают документы частных методов.
Именование переменных экземпляра и типов данных
Я также помню разговор между Уилом Шипли и несколькими другими разработчиками OS X по поводу подчеркивания. Из-за того, как работает компилятор Obj-C, если бы Apple добавила новую переменную экземпляра в класс в своих фреймворках, это потребовало бы перекомпиляции всех приложений, использующих эти фреймворки. Что касается уже существующих переменных экземпляра, вы должны получить предупреждение, когда наступите на одну из них.