如何使用Parse修复​​此错误

时间:2016-01-03 00:00:56

标签: swift parse-platform

我正在使用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的新手,所以请不要像对待白痴一样对待我,我只是快速的新手,这就是全部。

2 个答案:

答案 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