我在GitHub,parse.com& amp;别的,没有运气。问题是当我为PFObject调用saveInBackgroundWithBlock时,我收到以下错误:
无法使用类型'((Bool,NSError) - > Void)'的参数列表调用'saveInBackgroundWithBlock'
我正在使用Xcode 6.3 beta 2.所有框架都加载到项目中(包括Bolts&amp; Parse,但不是由parse.com ParseCrashReporting&amp; ParseUI提供),<Parse/Parse.h>
&amp;偶数<Bolts/Bolts.h>
通过Bridge Header。
var score = PFObject(className: "score")
score.setObject("Rob", forKey: "name")
score.setObject(95, forKey: "scoreNumber")
score.saveInBackgroundWithBlock {
(success: Bool!, error: NSError) -> Void in
if success == true {
println("Score created with ID: \(score.objectId)")
} else {
println(error)
}
}
有什么想法吗?
答案 0 :(得分:9)
error
参数应该是隐式解包的可选项,而不是success
参数:
(success: Bool, error: NSError!) -> Void in
^ ^
但是,除非您因任何原因需要指定类型,否则我建议您将闭包简单地用作:
(success, error) in
不太容易出现类型声明错误。
答案 1 :(得分:7)
在Swift 1.2中,.saveInBackgroundWithBlock的声明应如下所示:
Void saveInBackgroundWithBlock(block: PFBooleanResultBlock?(Bool, NSError?) -> Void)
所以应该如下:
score.saveInBackgroundWithBlock {
(success: Bool, error: NSError?) -> Void in
答案 2 :(得分:1)
该方法需要使用success
上的error
设置!
和error
个变量:
(success: Bool, error: NSError!)
^ ^
但您已将!
设置为错误的变量:
(success: Bool!, error: NSError)
如你所见: