Reputation: 909
I'm trying to figure out an alternate way to do something like this, using the range operator.
guard let statusCode = (response as? HTTPURLResponse)?.statusCode, statusCode >= 200 && statusCode <= 299 else {return}
Maybe something like this:
guard let statusCode = (response as? HTTPURLResponse)?.statusCode where (200...299).contains(statusCode) else {return}
or
guard let statusCode = (response as? HTTPURLResponse)?.statusCode, statusCode case 200...299 else {return}
Is this possible in Swift?
Upvotes: 8
Views: 1250
Reputation: 130102
Just for a different solution, you can also use:
guard
let statusCode = (response as? HTTPURLResponse)?.statusCode,
statusCode / 100 == 2
else {
return
}
Upvotes: 1
Reputation: 47886
As you like:
guard
let statusCode = (response as? HTTPURLResponse)?.statusCode,
(200...299).contains(statusCode) else {return}
or:
guard
let statusCode = (response as? HTTPURLResponse)?.statusCode,
case 200...299 = statusCode else {return}
or:
guard
let statusCode = (response as? HTTPURLResponse)?.statusCode,
200...299 ~= statusCode else {return}
Upvotes: 7
Reputation: 59506
Here's a possibile solution
guard
let statusCode = (response as? HTTPURLResponse)?.statusCode,
200...299 ~= statusCode
else { return }
Upvotes: 3