Подтвердить что ты не робот

Устаревшие и другие атрибуты методов в Swift, как?

В Objective-C я могу это сделать

- (id)init __attribute__((unavailable("init is unavailable, use initWithFrame")));

чтобы предупредить пользователей, которые не должны использовать этот метод для инициализации класса, и я могу добавить этот другой __ атрибут, чтобы осудить метод

+(void)shareWithParams:(NSDictionary *)params
__attribute((deprecated("use shareWithPars: instead"))); 

Возможно ли сделать что-то подобное в Swift?

4b9b3361

Ответ 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 {

}