gpt4 book ai didi

objective-c - 在 swift 应用程序中调用 Objective c 方法

转载 作者:行者123 更新时间:2023-11-28 13:20:44 25 4
gpt4 key购买 nike

好的,我已经设置好桥接头,现在我可以使用我的 Objective-C 代码,但我很难理解如何在 swift 中使用 Objective-C 方法。

这是我导入的.m文件中的方法

 -(void)sendWithLoadMessage:(NSString *)loadMessage
successMessage:(NSString *)successMessage
failureMessage:(NSString *)failureMessage
recoveryOptions:(NSString *)recoveryOptions
success:(void (^)(CustomResponse *response))success
failure:(void (^)(CustomResponse *response))failure

下面是我如何在我的 objective c 应用程序中使用它。我需要知道如何 swift 做到这一点:

CustomRequest *request = [_user login];
[request sendWithLoadMessage:@"Signing In"
successMessage:@"Signed In"
failureMessage:@"Failed to log in"
recoveryOptions:@"try again"
success:^(CustomResponse *response) {
....

}

最佳答案

要在 swift 中使用 Objective C 方法,您需要像对待 Swift 函数一样对待该方法。您通过 . 调用实例上的函数。

对你来说,它会是这样的:

let request = _user.login
request.sendWithLoadMessage("Signing In", successMessage: "Signed In", failureMessage: "Failed to log in", recoveryOptions: "try again", response: { CustomResponse in
println(response)
})

在这里利用尾随闭包:

let request = _user.login
request.sendWithLoadMessage("Signing In", successMessage: "Signed In", failureMessage: "Failed to log in", recoveryOptions: "try again") { response: CustomResponse in
println(response)
}

使用 $ 语法,您可以通过这种方式使它更短。如果您已经知道 block 中传回的参数,则无需通过调用 $indexOfParameter 键入即可访问参数列表。 $ 语法是 0 索引的,所以你的第一个参数是 $0,你的第二个参数是 $1,等等。

let request = _user.login
request.sendWithLoadMessage("Signing In", successMessage: "Signed In", failureMessage: "Failed to log in", recoveryOptions: "try again") {
println($0)
}

关于objective-c - 在 swift 应用程序中调用 Objective c 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26108215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com