Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Pando
8 / 8 / 2
Регистрация: 14.02.2013
Сообщений: 80
#1

Property и synthesize - Objective-C

06.07.2016, 14:52. Просмотров 4493. Ответов 1
Метки нет (Все метки)

Доброго времени суток!

Недавно начал изучать Objective-C, и столкнулся с проблемой при решении задачи.

Вообщем сама проблема. Есть два файла StockHolding.h (заголовочный файл с прототипами методов класса) и StockHolding.m (реализация методов класса).

StockHolding.h
Objective-C
1
2
3
4
5
6
7
8
9
10
11
@interface StockHolding : NSObject {
    float purchaseSharePrice, currentSharePrice;
    int numberOfShares;
}
 
@property purchaseSharePrice, currentSharePrice, numberOfShares;
 
-(float)costInDollars; // purchaseSharePrice * numberOfShare
-(float)valueInDollars; // currentShareprice * numberOfShares
 
@end
StockHolding.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
@implementation StockHolding
 
@synthesize purchaseSharePrice, currentSharePrice, numberOfShares;
 
-(float)costInDollars {
    return purchaseSharePrice * (float)numberOfShares;
}
 
-(float)valueInDollars {
    return currentSharePrice * (float)numberOfShares;
}
 
@end
В строке
Objective-C
1
@property purchaseSharePrice, currentSharePrice, numberOfShares;
компилятор выдает ошибку "Type name requires a specifier or qualifier".
И в строке
Objective-C
1
@synthesize purchaseSharePrice, currentSharePrice, numberOfShares;
ошибка "Type of property 'purchaseSharePrice'('int') does not match type of instance variable 'purchaseSharePrice'('float')".

Как их исправить?

Добавлено через 14 минут
Нашел решение, в StockHolding.h нужно заменить
Objective-C
1
@property purchaseSharePrice, currentSharePrice, numberOfShares;
на
Objective-C
1
2
@property float purchaseSharePrice, currentSharePrice;
@property int numberOfShares;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2016, 14:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Property и synthesize (Objective-C):

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

@synthesize и переименование переменных
Разъясните, пожалуйста, какого х... почему постоянно делается так: ...

Разбираемся как работает @synthesize
первое правило использования ARC: забыть слово @synthesize Доступ к свойству...

@property (readonly)
Добрый вечер, Решил немного поизучать obj-c. Пока не очень привычно Вопрос...

@interface и @property
Здравствуйте! Объясните пожалуйста, вот я накатал класс: @interface Good :...

Outlet, @property
Добрый день, встал вопрос: почему при декларации оутлета добавляется только...

1
noname_club
104 / 95 / 12
Регистрация: 01.05.2013
Сообщений: 600
06.07.2016, 16:48 #2
@synthesize является устаревшей директивой в контексте использования ARC

забудьте это слово пока.

Добавлено через 5 минут
Для объявления @property достаточно

Objective-C
1
2
3
4
@property (strong,nonatomic) NSObject * sobject;
@property (weak,nonatomic) NSObject * wobject;
 
@property (nonatomic) int intVariable;
для доступа к переменным

_sobject
_wobject
_intVariable

или


self.sobject
self.wobject
self.intVariable
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2016, 16:48
Привет! Вот еще темы с решениями:

Property класса
Всем доброго дня! Я только начал изучать Objective C по этому прошу сильно...

@property или ivar
Добрый день! Занимаюсь Objective C недавно, и, до сегодняшнего времени, не...

Великие и ужасные @property
Всем привет! Уже второй месяц изучаю разработку под iOS, но все откладывал...

Зачем нужно свойство @property (assign)
Для чего нужно свойство property (assign)? Как мне обратиться к полю класса,...


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

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

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