This file contains 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
extension Array { | |
mutating func pop() -> T? { | |
return self.removeAtIndex(0) | |
} | |
mutating func push(element: T) { | |
self.append(element) | |
} | |
} |
This file contains 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
#ifndef DEBUG_LOG | |
#ifdef DEBUG | |
#define DEBUG_LOG(fmt, ...) NSLog(fmt, ##__VA_ARGS__) | |
#else | |
#define DEBUG_LOG(fmt, ...) | |
#endif | |
#endif |
This file contains 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
#ifndef ERROR_LOG | |
#ifdef DEBUG | |
#define ERROR_LOG(error) if(error){NSLog(@"%s Error: %@", __PRETTY_FUNCTION__, error);} | |
#else | |
#define ERROR_LOG(error) | |
#endif | |
#endif |
This file contains 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
NSMutableDictionary *vibrationParameters = [[NSMutableDictionary alloc] init]; | |
vibrationParameters[@"VibePattern"] = @[@YES, @100]; | |
vibrationParameters[@"Intensity"] = @1; | |
#pragma clang diagnostic push | |
#pragma clang diagnostic ignored "-Wimplicit-function-declaration" | |
AudioServicesStopSystemSound(kSystemSoundID_Vibrate); | |
AudioServicesPlaySystemSoundWithVibration(kSystemSoundID_Vibrate, nil, vibrationParameters); | |
#pragma clang diagnostic pop |
This file contains 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
typedef void(^StringEnumerationBlock)(NSString *characterString, NSUInteger index, BOOL *stop); | |
- (void)enumerateCharactersUsingBlock:(StringEnumerationBlock)block { | |
NSParameterAssert(block); | |
BOOL stop = NO; | |
for (NSUInteger i = 0; i < self.length; i++) { | |
const unichar character = [self characterAtIndex:i]; | |
NSString *characterString = [NSString stringWithCharacters:&character length:1]; | |
block(characterString, i, &stop); | |
if (stop) { |
This file contains 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
@implementation NSString (Levenshtein) | |
- (NSUInteger)lev_distanceToString:(NSString *)comparisonString { | |
NSString *referenceString = [self copy]; | |
NSUInteger referenceLength = referenceString.length; | |
NSUInteger comparisonLength = comparisonString.length; | |
unsigned long m, n; | |
unsigned int distanceMatrix[comparisonLength + 1][referenceLength + 1]; | |
distanceMatrix[0][0] = 0; |
This file contains 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
public extension IteratorProtocol { | |
mutating public func any(_ predicate: (Element) throws -> Bool) rethrows -> Bool { | |
guard let current = next() else { return false } | |
return try predicate(current) || any(predicate) | |
} | |
mutating public func all(_ predicate: (Element) throws -> Bool) rethrows -> Bool { | |
guard let current = next() else { return true } | |
return try predicate(current) && all(predicate) |
This file contains 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 | |
typealias JSON = [String: AnyObject] | |
public typealias ImageRequestCompletion = (UIImage?, NSError?) -> Void | |
public enum UserImageSize: String { | |
case Epic = "epic" | |
case Big = "bigger" | |
case Normal = "normal" | |
case Tiny = "mini" |
This file contains 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 Currency { | |
let code, displayName: String | |
init?(code: String?) { | |
if let code = code, | |
displayName = NSLocale.systemLocale().displayNameForKey(NSLocaleCurrencyCode, value:code) { | |
self.code = code | |
self.displayName = displayName | |
} else { |
This file contains 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
public struct MatrixIndex: BidirectionalIndexType { | |
public let x, y : Int | |
private let columns: Int | |
public func successor() -> MatrixIndex { | |
return (x + 1 == columns) ? | |
MatrixIndex(x: 0, y: y + 1, columns: columns) : | |
MatrixIndex(x: x + 1, y: y, columns: columns) |
OlderNewer