ios - Swift 找不到带有可变参数的 objc 函数

标签 ios variables parameters swift

我用 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/

相关文章:

c++ - 有没有办法使用 typedef 中的参数名称

ios - UITableView插入行无效更新

ios - iPad 上的 UIDatePicker 布局问题

ios - 是否可以在 Typhoon 中重用具有运行时参数的定义?

javascript - 在 javascript/jquery 中传递可选参数

java - Http Servlet 请求在读取一次后会丢失 POST 正文中的参数

iphone - 如果应用程序处于后台模式,则不会发送任何请求

javascript - 基本 Javascript 变量作用域

variables - 名为 i 的变量是 Not Acceptable 吗?

ruby - 在 Ruby 中,堆栈中存储了什么?