我如何将其从Objective-C转换为Swift

恩尼奥·迈耶(Ennio E. Meier)

我不清楚如何在Swift中使用Radio Icecast库。如何将以下内容翻译成Swift?

radio = [[Radio alloc] init:@"my app"];
[radio connect:STREAM_URL withDelegate:self withGain:(1.0)];
playing = YES;   

此类的实现init方式不正确。通常,您会看到一个称为的方法init(不带任何参数),如果您需要使用用户代理参数进行翻译,则该方法将称为initWithUserAgent:

因此,在Radio.h文件中,找到以下内容的声明:

- (id)init:(NSString *)userAgent;

并替换为:

- (id)initWithUserAgent:(NSString *)userAgent;

Radio.m文件执行相同的操作。

然后,Objective-C语法变为:

radio = [[Radio alloc] initWithUserAgent:@"my app"];
[radio connect:STREAM_URL withDelegate:self withGain:1.0];
playing = YES;

和Swift等效的是:

radio = Radio(userAgent: "my app")
radio.connect(STREAM_URL, withDelegate: self, withGain: 1.0)
playing = true

显然,如果此类Radio是在Objective-C中实现的,那么您将在桥接头文件中包含.h文件。有关桥接头的更多信息,请参见Same Project参考中Swift和Objective-C

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章