PayMill iOS SDK:Swift 1.1> 1.2兼容性

时间:2015-04-19 22:55:10

标签: ios swift closures paymill

我在Swift项目中使用PayMill's iOS SDK

我的PMManager.initWithTestMode()存在问题,请参阅docs here

此代码与Swift 1.1和iOS 8.1 / 8.2完美配合:

PMManager.initWithTestMode(testMode, merchantPublicKey: publicKey, newDeviceId: nil,
    { (success, error) -> Void in
        if success{
            println("successfully initialized PayMillSDK")
        }
        else{
            println("error during initialization")
        }
    }
)

它给了我以下错误:

  

在通话

中缺少参数标签init

在关闭之前添加init:会触发更多警告。

如何修改上述代码段以允许与iOS 8.3 / Swift 1.2兼容?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

问题是init现在是保留关键字。因此,在Swift中选择此参数名称是没有选择的。然而,在Objective-C中,这是可能的。

幸运的是,可以使用这种语法糖:

PMManager.initWithTestMode(testMode, merchantPublicKey: publicKey, newDeviceId: nil)
    { (success, error) -> Void in
        if success{
            println("successfully initialized PayMillSDK")
        }
        else{
            println("error during initialization")
        }
    }