Easily handle errors and present them to the user in a nice way.
📦 Installation
Carthage
github "nodes-ios/Blobfish"
🔧 Setup
Blob & Blobbable
TODO: Add instructions
Alamofire Extension
In your AppDelegate's applicationDidFinishLaunching:launchOptions:
function first do the basic setup of Blobfish:
Blobfish.AlamofireConfig.blobForTokenExpired = {
let action = Blob.AlertAction(title: "Ok", handler: {
// Your custom actions on token expired go here
})
return Blob(title: "Token Expired",
style: .Alert(message: "Your token has expired. Please log in again.", actions: [action]))
}
Blobfish.AlamofireConfig.blobForUnknownError = { _, _ in
let action = Blob.AlertAction(title: "Ok", handler: nil)
return Blob(title: "Uknown Error",
style: .Alert(message: "Unknown error happened, please try again.", actions: [action]))
}
Blobfish.AlamofireConfig.blobForConnectionError = { _ in
return Blob(title: "Connection error, please try again.", style: .Overlay)
}
There is an extension to Alamofire Response
to make it adhere to the Blobbable
protocol, so handling errors in your callbacks should be a breeze.
func doSomeRequest(completion: Response<AnyObject, NSError> -> Void) { ... }
// ...
doSomeRequest(completion: { response in
switch response.result {
case .Failure(_):
// First, handle your custom error codes manually
if response.response?.statusCode == 870 {
// Your code to handle a custom error code
} else {
// Fallback to Blobfish
Blobfish.sharedInstance.handle(response)
}
default: break
})
👥 Credits
Made with ❤️ at Nodes.
📄 License
Blobfish is available under the MIT license. See the LICENSE file for more info.