为什么第二个片段有效而第一个无效?
此代码不起作用:
func logIn() {
PFUser.logInWithUsernameInBackground(tv_username.text, password:tv_password.text) {
(user: PFUser!, error: NSError!) -> Void in
if user != nil {
// Yes, User Exists
//self.loginInitialLabel.text = "User Exists"
} else {
// No, User Doesn't Exist
}
}
}
此代码有效:
func logIn() {
PFUser.logInWithUsernameInBackground(tv_username.text, password:tv_password.text) {
(user, error) -> Void in
if user != nil {
// Yes, User Exists
//self.loginInitialLabel.text = "User Exists"
} else {
// No, User Doesn't Exist
}
}
}
下面是错误信息。我正在寻找一个清晰的解释,说明为什么一些在线文档有第一个示例,但只有第二个示例有效。 Parse 是否在不更改文档的情况下更改了他们的 SDK,或者这是 Swift 1.2 更改的一些工件?我正在使用 XCode 6.3 和 Swift 1.2。
错误信息的缩放:
最佳答案
在第一个示例中,您指定了
user
的类型和error
分别显式(PFUser!
和NSError!
)。在第二个示例中,您允许
user
的类型和error
隐式提供。
因此,第一个示例给出编译错误的事实必然意味着您的显式类型不再正确。可能是感叹号;尝试删除它们。
不过,找出它们是什么类型的真正方法是使用第二个示例,编译它,然后将光标放在 user
中。然后在里面 error
并从 Xcode 窗口右侧的快速帮助中读取类型,就像我在这里所做的那样:
这个小技巧为我解开了很多 Swift 类型的谜团!
关于ios - 了解有关解析最新 SDK/Swift 1.2 的语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30057408/