Skip to content

Instantly share code, notes, and snippets.

View chriswebb09's full-sized avatar

Christopher Webb chriswebb09

View GitHub Profile
class ViewController: UIViewController {
let imageViewOne = UIImageView()
override func viewDidLoad() {
super.viewDidLoad()
imageViewOne.frame = UIScreen.main.bounds
view.addSubview(imageViewOne)
setImage()
}
import UIKit
fileprivate let imageCache = NSCache<NSString, UIImage>()
extension UIImageView {
func downloadImage(url: URL) {
if let cachedImage = imageCache.object(forKey: url.absoluteString as NSString) {
self.image = cachedImage
return
import UIKit
extension UICollectionViewCell {
static var identifier: String { return String(describing: self) }
}
extension UIImage {
enum Quality: CGFloat {
case worst = 0
case low = 0.25
case medium = 0.5
case high = 0.75
case best = 1
}
extension String {
// String extension check that itself for valid email pattern and returns boolean
func isValidEmail() -> Bool {
let emailRegEx = "^(?:(?:(?:(?: )*(?:(?:(?:\\t| )*\\r\\n)?(?:\\t| )+))+(?: )*)|(?: )+)?(?:(?:(?:[-A-Za-z0-9!#$%&’*+/=?^_'{|}~]+(?:\\.[-A-Za-z0-9!#$%&’*+/=?^_'{|}~]+)*)|(?:\"(?:(?:(?:(?: )*(?:(?:[!#-Z^-~]|\\[|\\])|(?:\\\\(?:\\t|[ -~]))))+(?: )*)|(?: )+)\"))(?:@)(?:(?:(?:[A-Za-z0-9](?:[-A-Za-z0-9]{0,61}[A-Za-z0-9])?)(?:\\.[A-Za-z0-9](?:[-A-Za-z0-9]{0,61}[A-Za-z0-9])?)*)|(?:\\[(?:(?:(?:(?:(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5]))\\.){3}(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5]))))|(?:(?:(?: )*[!-Z^-~])*(?: )*)|(?:[Vv][0-9A-Fa-f]+\\.[-A-Za-z0-9._~!$&'()*+,;=:]+))\\])))(?:(?:(?:(?: )*(?:(?:(?:\\t| )*\\r\\n)?(?:\\t| )+))+(?: )*)|(?: )+)?$"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
let result = emailTest.evaluate(with: self)
return result
}
extension UIViewController {
func dismiss() {
view.endEditing(true)
dismiss(animated: true, completion: nil)
}
}
import Foundation
extension NSError {
static func generalParsingError(domain: String) -> Error {
return NSError(domain: domain, code: 400, userInfo: [NSLocalizedDescriptionKey : NSLocalizedString("Error retrieving data", comment: "General Parsing Error Description")])
}
}
import UIKit
class Playlist {
private var head: PlaylistItem?
var itemCount: Int = 0
var isEmpty: Bool? {
return head == nil
import UIKit
class PlaylistItem {
var track: iTrack?
var next: PlaylistItem?
weak var previous: PlaylistItem?
}
extension PlaylistItem: Equatable {
static func ==(lhs: PlaylistItem, rhs: PlaylistItem) -> Bool {
class LLNode<T> {
var value: T
var next: LLNode?
weak var previous: LLNode?
init(value: T) {
self.value = value
}
}