使用这段代码获取错误 “呼叫可以抛出,但没有标记'尝试'并且错误未得到处理”
我正在使用Xcode 7.1最新的测试版和swift 2.0
func checkUserCredentials() -> Bool {
PFUser.logInWithUsername(userName!, password: password!)
if (PFUser.currentUser() != nil) {
return true
}
return false
答案 0 :(得分:10)
Swift 2.0引入了overload that accepts two parameters: a key selector, and an element selector.。该错误表明logInWithUsername:password:
可能会抛出错误,您必须对该错误执行某些操作。您有以下几种选择之一:
将您的checkUserCredentials()
功能标记为throws
并将错误传播给来电者:
func checkUserCredentials() throws -> Bool {
try PFUser.logInWithUsername(userName!, password: password!)
if (PFUser.currentUser() != nil) {
return true
}
return false
}
使用do
/ catch
语法来捕捉潜在错误:
func checkUserCredentials() -> Bool {
do {
try PFUser.logInWithUsername(userName!, password: password!)
}
catch _ {
// Error handling
}
if (PFUser.currentUser() != nil) {
return true
}
return false
}
如果抛出错误,请使用try!
关键字来获取程序陷阱,这只适用于您知道函数在当前情况下不会抛出的事实 - 类似于使用!
强制打开一个可选的(似乎不太可能给出方法名称):
func checkUserCredentials() -> Bool {
try! PFUser.logInWithUsername(userName!, password: password!)
if (PFUser.currentUser() != nil) {
return true
}
return false
}