【发布时间】:2018-09-28 14:44:43
【问题描述】:
我有一个 Objective-C 框架,我在其中弃用了一个方法并将其替换为另一个方法:
+ (void)methodName:(BOOL)value;
+ (void)MethodName:(BOOL)value __attribute__((deprecated("from version 2.0 - use 'methodName'")));
在使用框架的 Objective-C 项目中效果很好,但是当我尝试在 Swift 项目中调用该方法时,我收到以下错误:
AppDelegate.swift:21:3: 'methodName' 的使用不明确
(双击!发现这条候选线没有去任何地方)
问题似乎是方法名称的自动转换为 Swift 与仅将第一个字母更改为小写的冲突。
有什么方法可以将不推荐使用的方法包装在 #if OBJECTIVE_C 类型的杂注中,以便 Swift 模块只暴露于该方法的一个(较新)版本?
或者另一种解决自动翻译的方法?
【问题讨论】:
标签: ios objective-c swift frameworks