Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
ton252
0 / 0 / 0
Регистрация: 08.03.2015
Сообщений: 1
#1

Objective-C. Преимущества использования @property по сравнению с (ivar +setter/getter) - Objective-C

08.03.2015, 01:06. Просмотров 883. Ответов 0
Метки нет (Все метки)

Добрый день, не могу понять одну вещь. Вот лекциях по Objective-C говорят, что одним из ключевых плюсов и необходимостью использования @property является возможность реалиции lazy instantiation. Как я понял, lazy instantiation нужна, чтобы у нас не возникало таких ситуаций, когда мы хотим получить значение объекта, который еще не создан. Вот такой пример:

через @property
—————————————————————————————————-
.h
Objective-C
1
2
3
4
5
6
7
8
9
10
@property (nonatomic, strong) NSMutableArray* myArray;
.m
@synthesize myArray = _myArray;
– (NSMutableArray*) myArray
{
if (!_myArray){
_myArray = [[NSMutableArray alloc] init];
}
return _myArray;
}
через @ivar
—————————————————————————————————-
.h
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
Class: NSObject{
@protected
NSMutableArray* _myArray;
}
.m
– (NSMutableArray*) myArray
{
if (!_myArray){
_myArray = [[NSMutableArray alloc] init];
}
return _myArray;
}
1. Могу ли я реализовать lazy instantiation через обычные ivar и аксессоры?
2. Не могли бы вы поподробней разъяснить про @property. Они нужны лишь за тем, чтобы сократить кол-во кода и повысить его читаемость? Или в них скрыты какие-то еще более сложные механизмы, связанные с weak, strong, copy, readwrite, readonly? Если есть возможность можете привести примеры, когда стоит использовать strong, а кода weak
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2015, 01:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Objective-C. Преимущества использования @property по сравнению с (ivar +setter/getter) (Objective-C):

@property или ivar - Objective-C
Добрый день! Занимаюсь Objective C недавно, и, до сегодняшнего времени, не задавался вышеупомянутым вопросом. В учебниках и статьях...

@property,@synthesize в Objective-C - Objective-C
Может кто нибудь понятно объяснить, что на самом деле делает @property и зачем @synthesize. Читал wiki и другие сайты, но так и не...

Что за знак подчеркивания перед именем ivar-а? - Objective-C
заметил, что в XCODE 5 программа автоматически пытается постаивть знак "_": _lbl.text=tittle; Что он значит? Файл h: #import...

.NET 4.x EntityFramework: Custom setter/getter for EntityObject property - C#
Почитав Интернету - понял, довольно таки нетривиальная задача для реализации сабджа. Поделитесь, пожалуйста, знаниями кто как реализовывал...

Getter and setter - Java SE
Не могу получить значения. Правильно ли я делаю? Здесь геттер и сеттер package mainPackage; public class Calculator { ...

вопрос о getter\setter - C++
дан код, который трактуется как образец. class Foo { Value field_; public: // функция 1 Value& field() { cout<<"1";...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2015, 01:06
Привет! Вот еще темы с ответами:

Почитать о Generic и Getter\Setter - C#
Где можно почитать о Generic и Getter\Setter? Добавлено через 18 минут Почитать об этом*

Объясните назначение Setter, Getter, Deleter - Python
Можете объяснить зачем они нужны или же дайте ссылку на нормальный ресурс. После C++ очень тяжело понять ООП python, особенно не понятно с...

Преимущества и недостатки MASM32 по сравнению с TASM. - Assembler
Каковы преимущества и недостатки MASM32 по сравнению с TASM?

Java + Hibernate: Could not find a setter for property Type in class Entity.Disk - Java SE
Здравствуйте всем!! В общем то помогите победить вот такую ошибку: Could not find a setter for property Type in class Entity.Disk ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru