我正在使用Parse制作类似Twitter的应用程序,使用swift 2和Xcode 7.2
但我一直收到这个错误
无法转换类型'(PFUser!,NSError!)的值 - >虚空'预期参数类型' PFUserResultBlock?'
当我使用
时PFUser.logInWithUsernameInBackground
命令。
我的确切代码如下:
PFUser.logInWithUsernameInBackground(usernameTextfield.text!, password: passwordTextField.text!){
(user:PFUser!, error:NSError!)->Void in
if ((user) != nil){
print("Login sucessful!")
}
else {
print("Login failed")
}
}
}))
}
当我尝试带走感叹号和/或用问号替换它们时我只是有这个错误
''必须跟着调用,成员查找或下标
我是swift和Xcode的新手,所以请不要像对待白痴一样对待我,我只是快速的新手,这就是全部。
答案 0 :(得分:1)
你的闭包应该有(PFUser?, NSError?) -> Void
而不是(PFUser!, NSError!) -> Void
的类型。替换!用?在闭包中的参数类型中。
答案 1 :(得分:0)
从Swift 3.0开始,尝试替换:
gem 'sequel'
带
(user:PFUser!, error:NSError!)->Void in
首先,如果它完全有效,我建议不要使用(user:PFUser?, error:Error?)->Void in
,因为如果您正常访问!
或user
并且它们是{{1},您将会崩溃(其中一个总是!)。
其次,虽然Parse主要使用error
编写,使用nil
,但obj-c
似乎从Swift 3开始导入为NSError
!