PayMill iOS SDK:Swift 1.1 > 1.2 兼容性
PayMill iOS SDK: Swift 1.1 > 1.2 compatibility
我正在 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")
}
}
)
它给我以下错误:
Missing argument label init
in call
在关闭之前添加init:
会触发更多的警告。
如何修改以上代码片段以兼容 iOS 8.3 / Swift 1.2?
非常感谢任何帮助!
问题是 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")
}
}
我正在 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")
}
}
)
它给我以下错误:
Missing argument label
init
in call
在关闭之前添加init:
会触发更多的警告。
如何修改以上代码片段以兼容 iOS 8.3 / Swift 1.2?
非常感谢任何帮助!
问题是 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")
}
}