У меня есть среда Objective-C, в которой я осудил метод и заменил его другим:
+ (void)methodName:(BOOL)value;
+ (void)MethodName:(BOOL)value __attribute__((deprecated("from version 2.0 - use 'methodName'")));
, который прекрасно работает в проекте Objective-C с использованиемFramework, но когда я пытаюсь вызвать этот метод в проекте Swift, я получаю следующую ошибку:
AppDelegate.swift: 21: 3: неоднозначное использование 'methodName'
(двойной щелчок мышью на! Найденная строка-кандидат никуда не денется)
Проблема заключается в том, что автоматическое преобразование в Swift имен методов конфликтует только с первой буквойизменен на нижний регистр.
Можно ли как-то обернуть устаревший метод в прагму типа #if OBJECTIVE_C, чтобы модуль Swift был открыт только для одной (более новой) версии метода?
Или другой способ обойти автоматический перевод?