swift 无法调用 objc 中有参数个数不定的方法

2014-09-23 15:54:18 +08:00
 0x001
虽说Swift与Objc可以相互混用,可是我今天发现一个问题,swift中无法调用objc中有变参的方法,
如:
- (void)showName:(NSString *)name, ... NS_REQUIRES_NIL_TERMINATION;
- (void)showTitle:(NSString *)title;

第一个方法无法识别,第二个方法可以成功调用。

现在有些第三方库中就有这样的变参方法,如果用swift开发,那就无法调用,不知道有什么方法可以解决。望高手解答。
3631 次点击
所在节点    问与答
3 条回复
finab
2014-09-23 15:57:03 +08:00
用objc写调用方法
利用重载设置常用的参数调用个数
swift调用objc写的调用方法
0x001
2014-09-23 16:18:14 +08:00
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
0x001
2014-09-23 16:18:41 +08:00
@finab 我调用code在上面

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/135185

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX