(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
/* | |
NSData+Compression.swift | |
Created by Danilo Altheman on 17/06/15. | |
The MIT License (MIT) | |
Copyright © 2015 Quaddro - Danilo Altheman. All rights reserved. | |
Permission is hereby granted, free of charge, to any person obtaining a copy of | |
this software and associated documentation files (the "Software"), to deal in |
// extract pixel from a CGImage | |
/* use case: | |
let extractor = PixelExtractor(img: UIImage(named: "gauge_vertical")!.CGImage!) | |
let color = extractor.color_at(x: 10, y: 20) | |
*/ | |
class PixelExtractor { | |
// taken from http://stackoverflow.com/questions/24049313/ | |
// and adapted to swift 1.2 |
let plainString = "foo" | |
// Encoding | |
guard let plainData = (plainString as NSString).dataUsingEncoding(NSUTF8StringEncoding) else { | |
fatalError() | |
} | |
let base64String = plainData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0)) | |
print(base64String) // Zm9v |
require "Subprocess" | |
require "tmpdir" | |
# | |
# Currently will only convert a single swift code file into a static library | |
# and cannot include any Objective-C code. | |
# | |
# Usage: generate("/path/to/MyCode.swift", :ios) | |
# | |
def generate(file, platform, dst=nil) |
// The MIT License (MIT) | |
// | |
// Copyright (c) 2014 Nate Cook | |
// | |
// Permission is hereby granted, free of charge, to any person obtaining a copy | |
// of this software and associated documentation files (the "Software"), to deal | |
// in the Software without restriction, including without limitation the rights | |
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
// copies of the Software, and to permit persons to whom the Software is | |
// furnished to do so, subject to the following conditions: |
// Protocol for a type that supports a fromRaw(Int) conversion | |
// (such as "enum Foo: Int { ... }") | |
protocol ConvertibleFromRawInt { | |
class func fromRaw(raw: Int) -> Self? | |
} | |
// Note: Tried to use Swift's standard RawRepresentable protocol rather | |
// than ConvertibleFromRawInt, but couldn't get it to compile. | |
// Don't know whether it is a Swift bug or something I was doing wrong. |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
/** | |
Creates a dictionary with an optional | |
entry for every element in an array. | |
*/ | |
func toDictionary<E, K, V>( | |
array: [E], | |
transformer: (element: E) -> (key: K, value: V)?) | |
-> Dictionary<K, V> | |
{ | |
return array.reduce([:]) { |
#!/bin/bash | |
# This script automatically sets the version and short version string of | |
# an Xcode project from the Git repository containing the project. | |
# | |
# To use this script in Xcode, add the script's path to a "Run Script" build | |
# phase for your application target. | |
set -o errexit | |
set -o nounset |