Skip to content

Instantly share code, notes, and snippets.

View benbahrenburg's full-sized avatar

Ben Bahrenburg benbahrenburg

View GitHub Profile
@benbahrenburg
benbahrenburg / UIImageJPEGRepresentation.swift
Created March 5, 2017 23:54
Standard UIImageJPEGRepresentation API
UIImageJPEGRepresentation(image, compressionRatio)
@benbahrenburg
benbahrenburg / UIImageToDataJPEG2.swift
Created March 5, 2017 23:52
UIImageJPEGRepresentation wrapped within an Autorelease Pool
func UIImageToDataJPEG2(image: UIImage, compressionRatio: CGFloat) -> Data? {
return autoreleasepool(invoking: { () -> Data? in
return UIImageJPEGRepresentation(image, compressionRatio)
})
}
@benbahrenburg
benbahrenburg / ConfirmationViewController-2.swift
Created February 25, 2017 21:03
Modal Confirmation Setup Step 2
extension ConfirmationViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
return touch.view == gestureRecognizer.view
}
func handleTapOffModal(_ sender: UITapGestureRecognizer) {
dismiss(animated: true, completion: nil)
}
}
@benbahrenburg
benbahrenburg / ConfirmationViewController-1.swift
Created February 25, 2017 21:03
Modal Confirmation Setup Step 1
internal class ConfirmationViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTapOffModal(_:)))
tap.delegate = self
view.addGestureRecognizer(tap)
view.isUserInteractionEnabled = true
}
@benbahrenburg
benbahrenburg / ConfirmationViewController.swift
Created February 25, 2017 21:02
Modal Confirmation Example
import UIKit
internal class ConfirmationViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTapOffModal(_:)))
tap.delegate = self
view.addGestureRecognizer(tap)
@benbahrenburg
benbahrenburg / isExcludedFromBackup.swift
Created February 19, 2017 23:08
Exclude Specified file url from iCloud backup
struct FileHelpers {
@discardableResult static func addSkipBackupAttribute(url: URL) throws -> Bool {
var fileUrl = url
do {
if FileManager.default.fileExists(atPath: fileUrl.path) {
var resourceValues = URLResourceValues()
resourceValues.isExcludedFromBackup = true
try fileUrl.setResourceValues(resourceValues)
}
return true
@benbahrenburg
benbahrenburg / discardableThumbnail.swift
Created February 18, 2017 22:14
UIImage that implements NSDiscardableContent
final class discardableThumbnail: NSDiscardableContent {
var thumbnail: UIImage!
var accessCounter: Int = 0
init(image: UIImage) {
thumbnail = image
}
func beginContentAccess() -> Bool {
if !(self.thumbnail != nil) {
@benbahrenburg
benbahrenburg / example.swift
Last active January 30, 2017 06:15
Check if Recognizer already added.
/// Example adding it the first time
let recognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))
view.addGestureRecognizer(recognizer)
/// Test if gesture already added, if added return else add the recognizer
guard containsGestureRecognizer(recognizers: view.gestureRecognizers, find: recognizer) == false else { return }
/// Add the recognizer
view.addGestureRecognizer(recognizer)
@benbahrenburg
benbahrenburg / recognizerhelper.swift
Last active January 30, 2017 06:13
Check if a UIGestureRecognizer has been added
func containsGestureRecognizer(recognizers: [UIGestureRecognizer]?, find: UIGestureRecognizer) -> Bool {
if let recognizers = recognizers {
for gr in recognizers {
if gr == find {
return true
}
}
}
return false
}
@benbahrenburg
benbahrenburg / copyPDFtoData.swift
Last active November 27, 2019 09:16
Copy CGPDFDocument to Data
if let pdf = unlock(data: pdfData, password: "Hello World") {
print("You now have an unlocked CGPDFDocument")
print("Create a copy of the unlocked CGPDFDocument")
let pdfWithoutPassword = copyPDFtoData(pdf: pdf)
print("You how have a pdf without password information")
}