我用 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
);或者它有一个简单的方法来通过一个一个地添加参数来实现同样的事情。
关于ios - Swift 找不到带有可变参数的 objc 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25989653/