如何在 SWIFT 中实现 Objective-C 回调处理程序?

2024-06-12

目标c代码如下所示:

- (void)signInAccountWithUserName:(NSString *)userName
                         password:(NSString *)password
                       completion:(void (^)(BOOL success))completionBlock
{
    // Log into the account with `userName` and `password`...
    // BOOL loginSuccessful = [LoginManager contrivedLoginMethod];

    // Notice that we are passing a BOOL back to the completion block.
    if (completionBlock != nil) completionBlock(loginSuccessful);
}

这个方法的用法是:

[self signInAccountWithUserName:@"Bob"
                       password:@"BobsPassword"
                     completion:^(BOOL success) {
                         if (success) {
                             [self displayBalance];
                         } else {
                             // Could not log in. Display alert to user.
                         }
                     }];

我如何在 Swift 中实现它?等效的实现是什么?


func signInAccount(username:NSString!, password:NSString!, completionBlock:((Bool)->())?) {
    if completionBlock {
        completionBlock!(true)
    }
}

signInAccount("Bob", "BobPassword") {
    (var success) in
    println("\(success)")
};

signInAccount("Bob", "BobPassword", nil)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 SWIFT 中实现 Objective-C 回调处理程序? 的相关文章

随机推荐