В чем разница между экземплярами и переменными-членами в контексте объектно-c. Я видел эти два термина, о которых я упоминал, но никогда четко не очерченных. Поиск google и стека не дал немедленных объяснений, поэтому я подумал, что поставил бы вопрос.Переменная экземпляра Vs. Member Variable
ответ
Member variable - более общий термин. В других языках, таких как C++ или Java, переменная-член может ссылаться либо на instance variable, либо на class variable (статическая переменная-член).
Объектив C не имеет переменных класса, поэтому переменная экземпляра и переменная-член являются синонимами.
В качестве примечания, в современной Objective C, переменная экземпляра (также называемые Иварс в Objective C) должны быть созданы только из авто-синтезированных свойств (как было отмечено rfj001).
UPDATE
переменной экземпляра создается только из авто синтезированных свойств является Apple, практика рекомендуется для современной Objective C.
Используя свойства вместо экземпляра переменные в как можно большем числе мест обеспечивают множество преимуществ
Programming with Objective-C: Encapsulating Data
Это рекомендуется использовать свойство на объекте в любое время нужно следить за значением или другого объекта.
Как и во всех правилах программирования, могут возникнуть ситуации, когда вам необходимо нарушить это правило и прямо объявить ivar. Это, однако, должно быть редким исключением, а не правилом.
Пожалуйста, объясните, почему вы думаете, что ивары должны быть синтезированы только из свойств. Что случилось с не-имущественными иварами? – rmaddy
@rmaddy Я думаю, что вопрос должен состоять в том, что хорошо для ivar без свойства, чтобы инкапсулировать его? Абстрагирование доступа к данным стало важным шагом вперед в объектно-ориентированном программировании. –
- 1. static variable vs. member
- 2. Python self.variable vs private member variable variable
- 3. Member Variable vs. Function Аргумент
- 4. Приложение Variable Vs Web.Config Переменная
- 5. Member Variable Wrappers
- 6. Оптимизация Java: Локальная переменная Vs Переменная экземпляра
- 7. Локальная переменная vs переменная экземпляра Ruby inititalize
- 8. boost :: function static member variable
- 9. MySql 'wait_timeout' Глобальная переменная vs Variable
- 10. Переменная класса scope vs scope scope variable
- 11. Member Variable в java - это GC root?
- 12. C++ member variable initializaton order
- 13. Nullable variable types. .Value member
- 14. C++ static member variable scope
- 15. Member variable access in Dispose
- 16. C++ Static Const Member Variable Usage
- 17. Scala foreach member переменная
- 18. template member переменная специализация
- 19. Объем ERB: переменная экземпляра vs locals
- 20. переменная экземпляра Android Fragment vs Параллельные аргументы?
- 21. C++ alter private member variable from static member function
- 22. variable === undefined vs. typeof variable === "undefined"
- 23. Переменная класса Vs. Переменная экземпляра в python для значения int
- 24. TCL/Expect variable vs $ variable
- 25. VHDL Variable Vs. Сигнал
- 26. Что касается внутренних классов private member variable access
- 27. member variable как указатель на тип шаблона C++
- 28. merge std :: set on one member variable
- 29. Mutable variable, измененная функцией non-const member
- 30. Python Unittest, Inheritance и Member Variable Размножение
Переменные экземпляра и переменные-члены - это два слова, означающие одно и то же. Действительно, в Objective-C обычно вы обычно используете свойства, которые автоматически генерируют переменные instance/member. – rfj001