Swift找不到带有Variable参数的objc函数

时间:2014-09-23 07:46:16

标签: ios variables parameters swift

我用ObjectiveC创建了两个函数,如:

- (void)showName:(NSString *)name, ...;
- (void)showTitle:(NSString *)title;

我可以调用showTitle:在我的swift代码中,但是如果调用showName则无法编译:

这是我的代码:

//Objective_C code:
@interface DemoObject : NSObject

- (void)showName:(NSString *)name, ...;
- (void)showTitle:(NSString *)title;

@end

@implementation DemoObject
- (void)showName:(NSString *)name, ... {
NSLog(@"name=%@", name);
}

- (void)showTitle:(NSString *)title {
[self showName:title, @""];
}
@end

//Swift Code:
var obj = DemoObject()
obj.showTitle("");
obj.showName(""); //compile error here

如何解决此问题。因为我使用第三个库,它包含变量参数函数。

1 个答案:

答案 0 :(得分:3)

Swift不会使用varargs导入C函数或Objective-C方法。

任何具有varargs函数的优秀API也有一个替代形式的函数,它采用va_list(例如printf具有vprintf);或者它通过逐个添加参数来实现同样的事情。