Устаревшие и другие атрибуты методов в Swift, как?
В Objective-C я могу это сделать
- (id)init __attribute__((unavailable("init is unavailable, use initWithFrame")));
чтобы предупредить пользователей, которые не должны использовать этот метод для инициализации класса, и я могу добавить этот другой __ атрибут, чтобы осудить метод
+(void)shareWithParams:(NSDictionary *)params
__attribute((deprecated("use shareWithPars: instead")));
Возможно ли сделать что-то подобное в Swift?
Ответы
Ответ 1
Swift имеет атрибут available
, который вы можете использовать для этого. Доступные аргументы включают
- введены
- осуждается
- устарел
- сообщение
- переименованы.
Или для примера, который вы дали:
@available(*, unavailable, message: "init is unavailable, use initWithFrame")
init() {
}
@available(*, deprecated, message: "use shareWithPars: instead")
class func shareWithParams(params: NSDictionary) {
}
Подробнее об этих атрибутах читайте в разделе "Атрибуты" в "Язык Swift" . (на данный момент страница 627)
Ответ 2
Для Swift 3 и Swift 4 вместо того, чтобы использовать знак =
для установки сообщения, вы должны использовать знак :
. Например:
@available(*, deprecated, message: "Use EndPointModel class instead")
class BaseModel {
}