Skip to content

Instantly share code, notes, and snippets.

extension Array {
func sortedWith<T: Comparable, U: Comparable>(_ comparableTransform: (Array.Element) -> (T, U)) -> [Array.Element] {
return sorted(by: { (a, b) -> Bool in
let tupleA = comparableTransform(a)
let tupleB = comparableTransform(b)
return tupleA.0 == tupleB.0 && tupleA.1 == tupleB.1
})
}
}
extension Array {
func sortedWith<T: Comparable>(_ comparableTransform: (Array.Element) -> T) -> [Array.Element] {
return sorted(by: { (a, b) -> Bool in
return comparableTransform(a) > comparableTransform(b)
})
}
}
extension Array where Element: Hashable {
func uniqueElements() -> [Element] {
return uniqueElements(by: { $0 })
}
func uniqueElements<T: Hashable>(by uniqueValue: (Element) -> T) -> [Element] {
var uniqueElements: [Array.Element] = []
var set: Set<T> = Set()
for element in self {
let value = uniqueValue(element)
extension Array {
func sortedWith<T: Comparable>(_ comparableTransform: (Array.Element) -> T) -> [Array.Element] {
return sorted(by: { (a, b) -> Bool in
return comparableTransform(a) > comparableTransform(b)
})
}
}
let carts: [Card] = []
#!/usr/bin/ruby
raise "Usage: ./framework.rb <path to pbxproj file> <name of target>" unless ARGV.size == 2
proj_file, name = ARGV
str = IO.read(proj_file).gsub("com.apple.product-type.application", "com.apple.product-type.framework").gsub("#{name}.app", "#{name}.framework")
IO.write(proj_file, str)
import UIKit
class MyViewController: UIViewController {
@IBOutlet weak var button: UIButton!
var vc: UIViewController? = nil
override func viewDidLoad() {
super.viewDidLoad()
button.addTarget(self, action: #selector(down), for: .touchDown)
func didTouchDown() {
self.vc = DestViewController()
}
// about 75ms elapses here...
func didTouchUp() {
presentVC(self.vc)
}
func didTouchUp() {
let vc = DestViewController()
presentVC(vc)
}
#import "ViewController.h"
@interface ViewController ()
@end
@interface asdf : NSObject
@end
- (void)dealloc
{
if (_shouldRecycle) {
objc_destructInstance(self);
[self recycle];
} else {
[super dealloc];
}
}