Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Pro2005
44 / 44 / 3
Регистрация: 27.05.2013
Сообщений: 163
1

Переопределение метода только в iOS >= 7.0

27.03.2014, 17:07. Просмотров 874. Ответов 4
Метки нет (Все метки)

Такое возможно ? К примеру у меня есть класс, в нем метод
Objective-C
1
2
3
- (void)drawRect:(CGRect)rect {
     ....
}
В iOS < 7.0 он вообще не должен переопределяться. Я понимаю что нужно использовать директивы препроцессора но где-то туплю...
Вот что-то типо этого, только __IPHONE_OS_VERSION_MAX_ALLOWED - это константа, а мне нужно проверять версию на которой запущено приложение...
Objective-C
1
2
3
4
5
#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_7_0
- (void)drawRect:(CGRect)rect {
     ...
}
#endif
Кто что может подсказать ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 17:07
Ответы с готовыми решениями:

Переопределение метода в сабклассе делегата
Сабж. Есть класс1, реализует некий метод некого протокола. Как в классе...

IOS Simulator пускает в сеть только по https
Добрый день! Проблема такова: до вчерашнего дня лень быть обновлять основной...

Переопределение метода
Не могу переопределить в производном классе метод Change, чтобы изменялось еще...

Переопределение метода
Добрый Вечер!!! Объясните Пожалуйста поподробнее, что обозначет:...

Переопределение метода __format__
Здравствуйте. Может ли кто-нибудь показать пример, или дать ссылку, на пример...

4
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
28.03.2014, 00:34 2
Objective-C
1
[[UIDevice currentDevice] systemVersion]
и в дополнение
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
 
- (void)drawRect:(CGRect)rect {
    if (SYSTEM_VERSION_LESS_THAN(@"7.0")) {
        [super drawRect:rect];
    } else {
        // ...
    }
}
0
Pro2005
44 / 44 / 3
Регистрация: 27.05.2013
Сообщений: 163
28.03.2014, 12:15  [ТС] 3
Нет нето... я имею ввиду что бы метод вообще не переопределялся в определенной версии iOS
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
28.03.2014, 12:44 4
Pro2005, это как вы себе представляете?
Макросы они на этапе линковки сработают.
А дальше - рантайм, как показал Vorona.

Вы можете только подменить имплементацию. Например на какой-либо свой -customDrawRect
1
Pro2005
44 / 44 / 3
Регистрация: 27.05.2013
Сообщений: 163
28.03.2014, 12:53  [ТС] 5
Угу, понял...Спасибо !!!
0
28.03.2014, 12:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2014, 12:53

переопределение виртуального метода
Существует родитель-класс TEditField = class(TObject) protected ...

Переопределение метода resizeEvent
Надо написать событие при изменении размеров окна. Пишу в mainwindow.h...

Переопределение метода GetHashCode()
В МСДН прописано, что если программист решит переопределить метод Equals, то...


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

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

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