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

Свойства и переменные - Objective-C

Восстановить пароль Регистрация
 
4ep
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 4
12.02.2014, 12:07     Свойства и переменные #1
добрый день!
продолжаю учить obj c. Не понял один момент со свойствами.
кратко создал класс со свойствами и в main импортировал его.
Судя по поведению свойства могут использоваться без объявления переменных в классе.
Однако по книге которую изучаю свойства отчаянно дублируются переменными.
Вопрос как обычно зачем?

соб-но код main
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#import <Foundation/Foundation.h>
#import "vari.h"
 
int main(int argc, const char * argv[])
{
    vari *var1 = [[vari alloc] init];
 
    @autoreleasepool {
        [var1 setAVari:5];
        int a = [var1 AVari];
        
        NSLog(@" %d",a);
        
    }
    return 0;
}
объявление класса и свойства
Objective-C
1
2
3
4
5
6
#import <Foundation/Foundation.h>
 
@interface vari : NSObject
@property int AVari;
 
@end
ну и инициализация свойств
Objective-C
1
2
3
4
5
6
#import "vari.h"
 
@implementation vari
@synthesize AVari;
 
@end
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2014, 12:07     Свойства и переменные
Посмотрите здесь:

Как сделать так, чтобы переменные и свойства компонента, стали доступными для указания их значени из программы? C++/CLI WinForms
Создание класса, хранящего переменные всего проекта Objective-C
Можно ли сделать так, чтобы в методах О были видны переменные объекта К , в свойства которого он входит ? Visual Basic
C# Что лучше, свойства с приватной переменной или автоматические свойства?
Глобальные переменные Objective-C
Свойства Objective-C
Переменные внутри метода Objective-C
ARC и свойства Objective-C
Зачем всегда инкапсулировать переменные в свойства C#
Objective-C Видимость свойства
Objective-C Свойства класса
CSS: Переменные и свойства HTML, CSS

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.02.2014, 12:20     Свойства и переменные #2
4ep, раньше для создания instance variable для свойства необходимо было писать директиву @synthesize, с указанием имени конкретного ivar-a, либо без:
Objective-C
1
@synthesize AVari;
Равно:
Objective-C
1
@synthesize AVari = _AVari;
Сейчас можно не писать @synthesize, если нет явной необходимости в назначении сеттера/геттера на ivar с другим именем:
Objective-C
1
@synthesize AVari = _someWellNamedIvar;
В данном случае _someWellNamedIvar должна быть объявлена в интерфейсе класса.

Цитата Сообщение от 4ep Посмотреть сообщение
Однако по книге которую изучаю свойства отчаянно дублируются переменными.
Вопрос как обычно зачем?
Вы ответите на вопрос сами, если этой книге больше 2х лет.
4ep
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 4
13.02.2014, 14:56  [ТС]     Свойства и переменные #3
книга 2012 г. но это перевод видимо 2012 года.Получается изменились правила и теперь не надо дублировать?
проверил и вправду и synthesize даже не нужно писать. Понял что книга устарела.
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
13.02.2014, 15:13     Свойства и переменные #4
Ничего не дублируется. Когда, вы пишете @property, вы по сути объявляете 2 метода: геттер и сеттер (либо только геттер, если readonly). Емнип, до 4-го хcode, вам нужно было либо ручками имплементить эти методы, либо писать @synthesize, указывая, какому ivarу соответствует проперти, чтобы xcode сам сгенерил сеттер и геттер. Сейчас xcode все сам генерит, создавая по умолчанию ivar, который называет _имяПроперти.
Yandex
Объявления
13.02.2014, 15:13     Свойства и переменные
Ответ Создать тему
Опции темы

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