Skip to content

Instantly share code, notes, and snippets.

View chriswebb09's full-sized avatar

Christopher Webb chriswebb09

View GitHub Profile
@IBOutlet weak var progressView: UIProgressView!
@IBOutlet weak var downloadProgressLabel: UILabel!
var defaultSession = URLSession(configuration: .default)
let url = URL(string: "http://www.google.com")
static func downloadImage(url: URL, completion: @escaping (_ image: UIImage?, _ error: Error? ) -> Void) {
if let cachedImage = imageCache.object(forKey: url.absoluteString as NSString) {
completion(cachedImage, nil)
} else {
MTAPIClient.downloadData(url: url) { data, response, error in
if let error = error {
completion(nil, error)
} else if let data = data, let image = UIImage(data: data) {
imageCache.setObject(image, forKey: url.absoluteString as NSString)
if let cachedImage = imageCache.object(forKey: url.absoluteString as NSString) {
completion(cachedImage, nil)
}
func downloadImage(url: URL, completion: @escaping (UIImage?) -> Void)
let imageCache = NSCache<NSString, UIImage>()
class MainViewController: UIViewController {
@IBOutlet var mainView: MainView!
override func viewDidLoad() {
super.viewDidLoad()
mainView.delegate = self
}
}
extension ViewController: MainViewDelegate {
func searchButtonTappedWithTerm(with searchTerm: String) {
print("The text in UITextField is: \(searchTerm)")
}
}
class MainView: UIView {
@IBOutlet private weak var myTextfield: UITextField!
@IBOutlet private weak var myButton: UIButton!
weak var delegate: MainViewDelegate?
override func layoutSubviews() {
super.layoutSubviews()
myButton.addTarget(self, action: #selector(buttonTap), for: .touchUpInside)