我用 ObjectiveC 创建了两个函数,例如:
- (void)showName:(NSString *)name, ...;
- (void)showTitle:(NSString *)title;
我可以在我的 swift 代码中调用 showTitle:,但如果调用 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
如何解决这个问题。因为我使用了第三个库,它包含可变参数函数。
请您参考如下方法:
Swift 不导入带有可变参数的 C 函数或 Objective-C 方法。
任何具有可变参数函数的良好 API 也具有采用 va_list 的函数的替代形式(例如 printf 具有 vprintf);或者它有一个简单的方法来通过一个一个地添加参数来实现同样的事情。
