使用Swift 1.2注册Parse用户

时间:2015-04-09 08:45:43

标签: parse-platform swift

我使用Parse.com的注册功能,就像描述here一样。这是我的代码:

 user.signUpInBackgroundWithBlock {
    (succeeded: Bool!, error: NSError!) -> Void in
    if error == nil {
      // Hooray! Let them use the app now.
    } else {
      let errorString = error.userInfo["error"] as NSString
      // Show the errorString somewhere and let the user try again.
    }
  }
}

不幸的是,我已将我的项目从swift 1.1更新为swift 1.2并得到以下编译器错误:

  

功能签名'(Bool!,NSError!) - > void与之不兼容   例外类型' @objc_block(Bool,NSError!) - > Void'

它位于以下行:

user.signUpInBackgroundWithBlock {
        (succeeded: Bool!, error: NSError!) -> Void in

有人知道我怎么能这样做?谢谢!

2 个答案:

答案 0 :(得分:7)

你成功的变量是'Bool!'但该块返回的是一个'Bool'(没有感叹号)。

解决方案是:

user.signUpInBackgroundWithBlock {
    (succeeded: Bool, error: NSError!) -> Void in
    if error == nil {
      // Hooray! Let them use the app now.
    } else {
      let errorString = error.userInfo["error"] as NSString
      // Show the errorString somewhere and let the user try again.
    }
  }
}

太了解有关期权go to the apple doc

的更多信息

答案 1 :(得分:2)

我在使用块保存在后台时遇到了同样的问题。看起来parse返回" Bool不是Bool!" ...但是错误是NSError?除非你"!"它

something.saveInBackgroundWithBlock {
            (succeeded: Bool, error: NSError?) -> Void in

code
}