Rob*_*t S 2 error-handling xcode ios parse-platform swift
使用这段代码获取错误"调用可以抛出,但未标记为'try'且错误未得到处理"
我正在使用Xcode 7.1最新的beta和swift 2.0
func checkUserCredentials() -> Bool {
PFUser.logInWithUsername(userName!, password: password!)
if (PFUser.currentUser() != nil) {
return true
}
return false
Run Code Online (Sandbox Code Playgroud)
Cha*_* A. 10
Swift 2.0引入了错误处理.该错误表明logInWithUsername:password:可能会抛出错误,您必须对该错误执行某些操作.您有以下几种选择之一:
将您的checkUserCredentials()功能标记为throws并将错误传播给调用者:
func checkUserCredentials() throws -> Bool {
try PFUser.logInWithUsername(userName!, password: password!)
if (PFUser.currentUser() != nil) {
return true
}
return false
}
Run Code Online (Sandbox Code Playgroud)
使用do/ catch语法来捕获潜在的错误:
func checkUserCredentials() -> Bool {
do {
try PFUser.logInWithUsername(userName!, password: password!)
}
catch _ {
// Error handling
}
if (PFUser.currentUser() != nil) {
return true
}
return false
}
Run Code Online (Sandbox Code Playgroud)
try!如果抛出错误,请使用关键字来获取程序陷阱,这只适用于您知道函数在给定当前情况下永远不会抛出的事实 - 类似于使用!强制解包可选(似乎不太可能给出方法名称) :
func checkUserCredentials() -> Bool {
try! PFUser.logInWithUsername(userName!, password: password!)
if (PFUser.currentUser() != nil) {
return true
}
return false
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14790 次 |
| 最近记录: |