Ios 等效于Objective-c中的Swift公共方法?

Ios 等效于Objective-c中的Swift公共方法?,ios,objective-c,swift,Ios,Objective C,Swift,我的Swift文件中有以下类型的代码: public func RMDTestOne(_ value: @autoclosure (), details: String -> Bool) { // Call some Private Method. } 我想把它从Swift文件移到Objective-C文件中。首先添加此方法是因为RMDTestOne是我的Objective-C文件中的宏#define,Swift无法使用。我现在想把这个包装去掉 编辑: 更清楚地说,下面的宏是我的

我的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(头文件)中的任何内容默认都是公共的。相反,如果你想要一个私有方法,你可以完全不使用原型。

用你尝试的Objective-C代码更新你的问题。清楚地解释您遇到的问题。在Objective-C中,头文件中声明的每个方法都是公共的。抱歉。我更新了这个问题,让它更清楚。是否需要进一步澄清?@vadian-可能是因为变量参数的原因,该方法没有添加?将宏更改为公共方法,其实现进行私有调用。因此,您的意思是,该宏应该已经可用?如果在.h中,则应该可用。为什么要使用宏?我不知道你的代码库的大小和复杂度,但是宏是危险的。它们是易于碰撞的,就像使用程序范围的常量。考虑任何宏,例如:<代码>定义了FooSynIL(α,A1,x,描述,…)({…)} /代码>这会在SWIFT文件中显示吗?很抱歉,我一定误解了你们正在做的事情。不能在swift中使用objective-c宏。把它改成一种方法。