我将Xcode更新为6.3,发现我的代码中有一些新的错误,新的Swift 1.2。
user.signUpInBackgroundWithBlock {
(success:Bool!, error:NSError!) -> Void in
if !(error != nil) {
println("sign up successfully")
var loginAlert: UIAlertController = UIAlertController(title: "Sign Up", message: "Sign Up Succeeded", preferredStyle: UIAlertControllerStyle.Alert)
self.presentViewController(loginAlert, animated: true, completion: nil)
loginAlert.addAction(UIAlertAction(title: "Okay", style:
我收到了这个错误:
无法使用类型的参数列表调用signUpInBackgroundWithBlock((Bool!,NSError!) - > void)
我该如何解决?
另一个
@IBAction func endend(sender: AnyObject) {
if (PFUser.currentUser() == nil) {
PFUser.logInWithUsernameInBackground(usernameTextField.text, password: passwordTextField.text){
(user:PFUser!, error:NSError!) -> Void in
if user != nil {
println("login chenggong")
var tlvc = TimelineViewControllerTableViewController()
self.presentViewController(tlvc, animated: true, completion: nil)
}
else {
println("failed")
}
}
}
}
我收到了这个错误:
“UITextField”没有名为“text”的成员。
我有3个关于}
的错误,它说
预期“,”分隔符。
表达式列表中的预期表达式。
预期“)”表达式。
我可以在Swift 1.2之前运行我的应用程序,但现在......
答案 0 :(得分:1)
以下代码为我工作:
PFUser.logInWithUsernameInBackground(username.text as String!, password: password.text as String!){
(loggedInuser: PFUser?, signupError: NSError?) -> Void in
答案 1 :(得分:0)
在Xcode中,转到编辑>转换...>到最新的Swift语法...
新版本中有多种语言语法更改,因此Apple提供了一个工具来帮助迁移旧的Swift代码。从我所阅读的内容来看,它非常有用,但并不总能解决100%的问题。希望它至少可以减少您所看到的错误数量。
答案 2 :(得分:0)
对于Parse注册块,当您强制解包布尔成功参数时,Swift 1.2编译器不喜欢它。
删除'!'在'成功之后:Bool'应该删除你得到的错误。
尝试更改:
user.signUpInBackgroundWithBlock{(success:Bool!, error:NSError!) -> Void in
要:
user.signUpInBackgroundWithBlock{(success:Bool, error:NSError!) -> Void in
答案 3 :(得分:0)
尝试更改:
user.signUpInBackgroundWithBlock{(success:Bool!, error:NSError!) -> Void in
要:
user.signUpInBackgroundWithBlock{(success:Bool?, error:NSError?) -> Void in