这段代码出现错误
“调用可以抛出,但没有标记‘try’并且错误不被处理”
我使用的是 Xcode 7.1 最新的 beta 和 swift 2.0
func checkUserCredentials() -> Bool {
PFUser.logInWithUsername(userName!, password: password!)
if (PFUser.currentUser() != nil) {
return true
}
return false
Swift 2.0 引入错误处理 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html#//apple_ref/doc/uid/TP40014097-CH42-ID508。该错误表明logInWithUsername:password:
可能会引发错误,并且您必须对该错误执行某些操作。您有以下几种选择之一:
标记你的checkUserCredentials()
功能为throws
并将错误传播给调用者:
func checkUserCredentials() throws -> Bool {
try PFUser.logInWithUsername(userName!, password: password!)
if (PFUser.currentUser() != nil) {
return true
}
return false
}
Use do
/catch
捕获潜在错误的语法:
func checkUserCredentials() -> Bool {
do {
try PFUser.logInWithUsername(userName!, password: password!)
}
catch _ {
// Error handling
}
if (PFUser.currentUser() != nil) {
return true
}
return false
}
Use the try!
关键字让程序在抛出错误时陷入困境,只有当您知道该函数在当前情况下永远不会抛出错误时,这才适用 - 类似于使用!
强制解包可选(鉴于方法名称似乎不太可能):
func checkUserCredentials() -> Bool {
try! PFUser.logInWithUsername(userName!, password: password!)
if (PFUser.currentUser() != nil) {
return true
}
return false
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)