Ios 无法调用';saveInBackgroundWithBlock';
我已经在GitHub、parse.com和其他地方检查了无数次语法,但没有任何运气。问题是,当我为PFObject调用saveInBackgroundWithBlock时,出现以下错误: 无法使用类型为“((Bool,NSError)->Void)”的参数列表调用“saveInBackgroundWithBlock” 我使用的是Xcode 6.3 beta 2。所有框架都加载到项目中(包括螺栓和解析,但不是由Parse.com ParseCrashReporting&ParseUI提供),Ios 无法调用';saveInBackgroundWithBlock';,ios,parse-platform,swift,Ios,Parse Platform,Swift,我已经在GitHub、parse.com和其他地方检查了无数次语法,但没有任何运气。问题是,当我为PFObject调用saveInBackgroundWithBlock时,出现以下错误: 无法使用类型为“((Bool,NSError)->Void)”的参数列表调用“saveInBackgroundWithBlock” 我使用的是Xcode 6.3 beta 2。所有框架都加载到项目中(包括螺栓和解析,但不是由Parse.com ParseCrashReporting&ParseUI提供),&甚至
&甚至
都通过桥头引入
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)
}
}
有什么想法吗?假设
error
参数是隐式展开的可选参数,但不是success
参数:
(success: Bool, error: NSError!) -> Void in
^ ^
但是,除非出于任何原因需要指定类型,否则我建议您将闭包简单地用作:
(success, error) in
不太容易出现类型声明错误。该方法希望
成功
和错误
变量与一起设置成这样出现错误时的code>:
(success: Bool, error: NSError!)
^ ^
但是你已经设置了代码>到错误的变量:
(success: Bool!, error: NSError)
正如你在这里看到的:
在Swift 1.2中.saveInBackgroundWithBlock的声明应如下所示:
Void saveInBackgroundWithBlock(block: PFBooleanResultBlock?(Bool, NSError?) -> Void)
所以应该是这样的:
score.saveInBackgroundWithBlock {
(success: Bool, error: NSError?) -> Void in
谢谢你,亲爱的先生,你为我指明了正确的方向!然而,你的建议并不完全正确,请看下面我的答案。唯一的区别是隐式展开的可选项,你可以将其声明为普通可选项。你因此而出错了吗?是的,每当我更改这些内容时,我都会出错。然而,“(成功,错误)in”似乎在起作用,但这不是我想要的。感谢您为我指明了正确的方向,请参阅Xcode 7 beta 5显示错误:无法使用类型为“((Bool,NSError?->Void)”的参数列表调用“SignupInBackgroundithBlock”