Last active
November 18, 2022 21:21
-
-
Save FWEugene/ee3904add29c2c17bd62b4c98e1d19fa to your computer and use it in GitHub Desktop.
Useful Swift Tips and Tricks
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This is a list of nice tips and tricks I discovered | |
//MARK: Tip #1 | |
let task = urlSession.dataTask(with: url) { data, _, error | |
switch error { | |
case .error(let error as NSError) where error.code == NSURLErrorNotConnectedToInternet: | |
presenter.showOfflneError() | |
case .error(let error): | |
presenter.showNetworkTaskError(with: error) | |
case .noError() | |
presenter.displayData(data) | |
} | |
} | |
//In swift 3 NSError domains and codes can be used for pattern matching | |
//MARK: Tip #2 | |
let task = urlSession.dataTask(with: url) { data, _, error | |
if let error = error { | |
switch error { | |
case URLError.notConnectedToInternet: | |
presenter.showOfflneError() | |
case .error(let error): | |
presenter.showNetworkTaskError(with: error) | |
} | |
} | |
presenter.displayData(data) | |
} | |
//MARK: Tip #3 | |
// Convert String to Data | |
let string = "String" | |
let data = string.data(using:.utf8) | |
// cleaner way | |
let data = Data(string.utf8) | |
//MARK: Tip #3 | |
//elementsEqual() on unordered collections uses elemetns order for comparison | |
var set_1: Set<Int> = Set(1...5) | |
var set_2: Set<Int> = Set(1...5).reversed() | |
set_1==set_2 // true | |
set_1.elementsEqual(set_2) // false | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment