This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// these functions take a swift class's statically referenced method and the instance those methods | |
// should apply to, and returns a function that weakly captures the instance so that you don't have | |
// to worry about memory retain cycles if you want to directly use an instance method as a handler | |
// for some object, like NSNotificationCenter. | |
// | |
// For more information, see this post: | |
// http://www.klundberg.com/blog/capturing-objects-weakly-in-instance-method-references-in-swift/ | |
func weakify <T: AnyObject, U>(owner: T, f: T->U->()) -> U -> () { | |
return { [weak owner] obj in |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
class ViewController: UIViewController { | |
// error: 'UISearchController' is only available on iOS 8.0 or newer | |
var searchController: UISearchController? | |
// error: Stored properties cannot be marked potentially unavailable with 'introduced=' | |
@available(iOS 8.0, *) | |
var conditionallyAvailableSearchController: UISearchController? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
struct TableViewSection<T, Cell: UITableViewCell> { | |
var cellIdentifier: String = "" | |
var items: [T] = [] | |
var configureCell: (cell: Cell, item: T, indexPath: NSIndexPath) -> Void | |
} | |
class TableViewDataSource: NSObject, UITableViewDataSource { | |
var sections: [TableViewSection<?, ?>] = [] // I want arbitrary T/Cell types here, what do? | |
// ... |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
protocol BaseSection { | |
var cellIdentifier: String { get } | |
func numberOfRows() -> Int | |
func registerIdentifier(tableView: UITableView) | |
func configureCell(cell: UITableViewCell, indexPath: NSIndexPath) | |
} | |
class Section<T, Cell: UITableViewCell>: BaseSection { | |
var rows: [T] = [] | |
var cellIdentifier = "" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let regex = try NSRegularExpression(pattern: mypattern, options: []) | |
let str = "some string to match" | |
if let result = regex.firstMatchInString(str, options: [], range: NSMakeRange(0, str.characters.count)) { | |
print((str as NSString).substringWithRange((result?.rangeAtIndex(1))!)) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Written using Swift 3.0.x | |
fileprivate final class Box<T> { | |
let unbox: T | |
init(_ value: T) { | |
unbox = value | |
} | |
} | |
public struct CopyOnWrite<T: AnyObject> { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/usr/bin/xcrun xcodebuild -workspace /Users/klundberg/workspaces/wayfair-ios/Carthage/Checkouts/FutureKit/FutureKit.xcworkspace -scheme FutureKit\ iOS -configuration Release -derivedDataPath /Users/klundberg/Library/Caches/org.carthage.CarthageKit/DerivedData/FutureKit/3.0.0 -sdk iphoneos ONLY_ACTIVE_ARCH=NO BITCODE_GENERATION_MODE=bitcode CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES clean buildUser defaults from command line: | |
IDEDerivedDataPathOverride = /Users/klundberg/Library/Caches/org.carthage.CarthageKit/DerivedData/FutureKit/3.0.0 | |
Build settings from command line: | |
BITCODE_GENERATION_MODE = bitcode | |
CARTHAGE = YES | |
CODE_SIGN_IDENTITY = | |
CODE_SIGNING_REQUIRED = NO | |
ONLY_ACTIVE_ARCH = NO | |
SDKROOT = iphoneos11.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{% for type in types.based.Codable|!enum %} | |
public extension {{ type.name }} { | |
enum CodingKeys: String, CodingKey { | |
{% for variable in type.variables|instance %} | |
{% if variable|annotated:"keyOverride" %} | |
case {{ variable.name }} = "{{ variable.annotations.keyOverride }}" | |
{% else %} | |
case {{ variable.name }} = "{{ variable.name|camelToSnakeCase }}" | |
{% endif %} | |
{% endfor %} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
enum JSONValue: Codable, Equatable { | |
struct JSONValueDecodingError: Error { | |
let message: String | |
} | |
case boolean(Bool) | |
case number(Double) | |
case string(String) | |
case array([JSONValue?]) | |
case object([String: JSONValue?]) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
041f94dcd6f7e66679da2ead9c76e5aaa24f0d17ec559ab354806133340f877095226f2d4bc36a07c4cf1f1e9269bb3bb55970234a0af292c869446ce0f6e8e886;nsirlconnection |
OlderNewer