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

时间:2014-11-29 13:43:29

标签: objective-c swift radio translate

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

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

1 个答案:

答案 0 :(得分:1)

此类实现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

显然,如果在Objective-C中实现了此Radio类,那么您在桥接头中包含.h文件。有关桥接标头的详细信息,请参阅Swift and Objective-C in the Same Project参考。