【问题标题】:Calling Objective-C function in swift with a closure使用闭包快速调用 Objective-C 函数
【发布时间】:2015-11-27 07:41:19
【问题描述】:

我正在使用 CRM Mobile SDK 在 iOS 中访问 MS Dynamics CRM,这是由 Microsoft 提供的,并且是 Objective-C 中的。我想在 Swift 中使用这个 sdk。我使用 swiftify 将示例 Objective-C 代码转换为 Swift,但它给出了错误。

无法使用类型为“(字符串,完成:(ADAuthenticationResult)-> Void)”的参数列表调用“loginWithEndpoint”

函数被调用是

- (void)loginWithEndpoint:(NSString *)serverURL completion:(ADAuthenticationCallback)completion;

这样称呼

CRMClient.sharedClient().loginWithEndpoint(host, completion: {(result: ADAuthenticationResult) -> Void in
            if result.error {
                // TODO: Handle the error
            }
            else {
                // TODO: Do some work
            }
        })

根据示例函数会在objective-c中调用

    CRMClient *client = [CRMClient sharedClient];
[client loginWithEndpoint:@"https://mydomain.crm.dynamics.com" completion:^(ADAuthenticationResult *result) {
    if (result.error) {
        // TODO: Handle the error
    }
    else {
        // TODO: Do some work
    }
}];

【问题讨论】:

  • 我认为传入 loginWithEndpoint 函数的参数不匹配。
  • 你能解释一下吗,因为我是 ios 的初学者

标签: ios objective-c swift


【解决方案1】:

CRM SDK 中出现错误。 SDK在objective-c中正常运行,但在将xcode更新到7.1.1和swift 2.1错误更改后不能在swift中运行。

决定改用soap身份验证,因为它好用,不需要azure账号连接crm

【讨论】:

    猜你喜欢
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多