由于模棱两可的方法调用错误,Built.io 在 iOS 应用程序中集成失败
Built.io integration failed in iOS application due to ambiguous method call error
我正在尝试使用 Xcode 9.1 和 swift 4 将 built.io 集成到 iOS 应用程序中,但由于模糊的保存调用错误而失败,尽管我只有调用此方法一次仍然表示模棱两可的调用。我无法确定问题所在。
我提到这个 link 将 sdk 集成到 iOS 中:
使用的代码是
导入 UIKit
导入内容栈
导入 BuiltIO
class ViewController: UIViewController {
func built(){
var builtApplication : BuiltApplication = Built.application(withAPIKey: "")
var pc : BuiltClass = builtApplication.class(withUID: "test")
var projectObject:BuiltObject = pc.object()
projectObject.save { (responseType, err) in //ambiguous error here on save call
if err != nil {
print("Err")
} else {
print("Success")
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
}
我已经在使用cocoapod的项目中安装了sdk。下图包含显示错误的应用程序屏幕截图。我正在使用 BuiltObject class 对象来调用保存方法,但是当我进入保存方法时,它会将我带到 BuiltKeyStore class 的方法,我完全不明白为什么?请帮忙,提前致谢
您需要将 completionBlock 作为参数传递,而不是 inline。
试试下面的代码,它适用于 Swift 3.2 & 4,
let completionBlock:BuiltRequestCompletionHandler = { (responseType:BuiltResponseType, error:Error?) in
if error != nil {
print("Err")
} else {
print("Success")
}
}
projectObject.save(completionBlock)
试一试,肯定有用。
我正在尝试使用 Xcode 9.1 和 swift 4 将 built.io 集成到 iOS 应用程序中,但由于模糊的保存调用错误而失败,尽管我只有调用此方法一次仍然表示模棱两可的调用。我无法确定问题所在。 我提到这个 link 将 sdk 集成到 iOS 中:
使用的代码是
导入 UIKit 导入内容栈 导入 BuiltIO
class ViewController: UIViewController {
func built(){
var builtApplication : BuiltApplication = Built.application(withAPIKey: "")
var pc : BuiltClass = builtApplication.class(withUID: "test")
var projectObject:BuiltObject = pc.object()
projectObject.save { (responseType, err) in //ambiguous error here on save call
if err != nil {
print("Err")
} else {
print("Success")
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
}
我已经在使用cocoapod的项目中安装了sdk。下图包含显示错误的应用程序屏幕截图。我正在使用 BuiltObject class 对象来调用保存方法,但是当我进入保存方法时,它会将我带到 BuiltKeyStore class 的方法,我完全不明白为什么?请帮忙,提前致谢
您需要将 completionBlock 作为参数传递,而不是 inline。 试试下面的代码,它适用于 Swift 3.2 & 4,
let completionBlock:BuiltRequestCompletionHandler = { (responseType:BuiltResponseType, error:Error?) in
if error != nil {
print("Err")
} else {
print("Success")
}
}
projectObject.save(completionBlock)
试一试,肯定有用。