Skip to content

Instantly share code, notes, and snippets.

@FWEugene
Last active November 18, 2022 21:21
Show Gist options
  • Save FWEugene/ee3904add29c2c17bd62b4c98e1d19fa to your computer and use it in GitHub Desktop.
Save FWEugene/ee3904add29c2c17bd62b4c98e1d19fa to your computer and use it in GitHub Desktop.
Useful Swift Tips and Tricks
// 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