我的 Swift 文件之一中有以下类型的代码:
public func RMDTestOne(_ value: @autoclosure (), details: String -> Bool) {
// Call some Private Method.
}
我想将其从我的 Swift 文件移到我的 Objective-C 文件中。最初添加此方法是因为 RMDTestOne
是我的 Objective-C 文件中的宏 #define
,并且无法被 Swift 使用。我现在正在尝试摆脱这种包装。
编辑:
更清楚地说,以下宏是我的 Objective-C 代码:
#define RMD_TEST_ONE(__value, __details ...) \
({
// Call some Private Method
})
我尝试在 Swift 文件中访问此定义,但是,我无法编译引用它的任何代码。所有导入等都是正确的,事实证明该宏根本不存在于转换后的文件中。我终于能够在将上面的 RMDTestOne
方法添加到包装文件中时添加该文件。我觉得这个文件是一些不必要的东西,希望将其删除。有什么方法可以在我的 Objective-C 文件本身中公开这个宏吗?
最佳答案
在 Objective-C 中,.h(头文件)中的所有内容默认都是公共(public)的。相反,如果您想要一个私有(private)方法,您可以完全放弃原型(prototype)。
关于ios - 相当于 Objective-c 中的 Swift Public 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43642695/