Swift没有看到带有变量参数的Objective-C方法

时间:2015-07-15 23:20:49

标签: ios objective-c swift

我用两种方法创建了Objective-C类。它们都适用于变量参数列表:

@interface TestClass : NSObject

- (void)methodWithVariableArguments:(NSString *)string  arguments:(va_list)arguments;

- (void)methodWithVariableArguments:(NSString *)string, ...;

@end

当我尝试在Swift代码中使用此类的方法时,它允许我只使用第一种方法:

var testObject = TestClass()
testObject.methodWithVariableArguments("String", arguments: pointer)

第二个斯威夫特无法识别 如果我尝试从Swift代码导航到TestClass,它会向我显示:

class TestClass : NSObject {

    func methodWithVariableArguments(string: String!, arguments: CVaListPointer)
}

它忽略了我的第二种方法 NSString有类似的方法,它们都适用于Swift。

有人知道如何解决它吗?

更新
我向Apple发送了错误报告。他们证实他们有这样的问题 机票号码是21848465.它被标记为重复票证号为15935999.最后一个票据是"打开"状态。

1 个答案:

答案 0 :(得分:2)

现在根本不可能。斯威夫特不能那样做。解决方法是使用(va_list)参数创建包装器方法并将它们作为参数传递。如果它不是您的班级,您可以创建一个类别,或者只是将其添加到您的来源。