View Regex.swift
1 2 3 4 5 6 7 8 9 10
struct Regex {
let pattern: String
let options: NSRegularExpressionOptions!
 
private var matcher: NSRegularExpression {
return NSRegularExpression(pattern: self.pattern, options: self.options, error: nil)
}
 
init(pattern: String, options: NSRegularExpressionOptions = nil) {
self.pattern = pattern
View CoreGraphics.swift
1 2 3 4 5 6 7 8 9
import CoreGraphics
 
infix operator |> { precedence 50 associativity left }
 
// MARK: CGPoint
 
func +(lhs: CGPoint, rhs: CGPoint) -> CGPoint {
return CGPoint(x: lhs.x + rhs.x, y: lhs.y + rhs.y)
}
View Calendar.swift
1 2 3 4 5 6 7 8 9 10
protocol Calendar {
typealias Unit: BidirectionalIndexType
 
typealias Era: Unit
typealias Year: Unit
typealias Month: Unit
typealias Week: Unit
typealias Day: Unit
typealias Weekday: Unit
typealias Hour: Unit
View URL.swift
1 2 3 4 5 6 7 8 9
struct URL {
var scheme: String?
var user: String?
var password: String?
var host: String?
var port: Int?
var path: String?
var query: String?
var fragment: String?
View Complex.swift
1 2 3 4 5 6 7 8
struct Complex<T: FloatLiteralConvertible> {
var real: T
var imaginary: T
}
 
func +(lhs: Complex<Double>, rhs: Complex<Double>) -> Complex<Double> {
return Complex<Double>(real: lhs.real + rhs.real, imaginary: lhs.imaginary + rhs.imaginary)
}
View random.swift
1 2 3 4 5 6 7 8 9 10
import Darwin
 
extension Int {
static func random() -> Int {
return Int(arc4random())
}
 
static func random(range: Range<Int>) -> Int {
return Int(arc4random_uniform(UInt32(range.endIndex - range.startIndex))) + range.startIndex
}
View NSDecimalNumber.swift
1 2 3 4 5 6 7 8 9
import Foundation
 
// MARK: - Comparable
 
extension NSDecimalNumber: Comparable {}
 
public func ==(lhs: NSDecimalNumber, rhs: NSDecimalNumber) -> Bool {
return lhs.compare(rhs) == .OrderedSame
}
View nshipster-new-years-2015.md

Season's Greetings, NSHipsters!

As the year winds down, and we take a moment to reflect on our experiences over the past months, one thing is clear: 2014 has been an incredible year professionally for Apple developers. So much has happened in such a short timespan, and yet it's hard to remember our relationship to Objective-C before Swift, or what APIs could have captivated our imagination as much as iOS 8 or WatchKit.

It's an NSHipster tradition to ask you, dear readers, to send in your favorite tips and tricks from the past year for publication over the New Year's holiday. This year, with the deluge of new developments—both from Cupertino and the community at large—there should be no shortage of interesting tidbits to share.

Submit your favorite piece of Swift or Objective-C trivia, framework arcana, hidden Xcode feature, or anything else you think is cool, and you could have it featured in the year-end blowout article. Just comment on this gist below!

If you're wondering about what to post, look to

View RecipePageRenderer.swift
1 2 3 4 5 6 7 8 9 10
//
// RecipePageRenderer.swift
// (c) 2014 Nate Cook, licensed under the MIT License
//
 
import UIKit
import AVFoundation
 
/// Units for printing content insets
let POINTS_PER_INCH: CGFloat = 72
View CombinedComparable.swift
1 2 3 4 5 6 7 8 9 10
enum ComparisonOrdering: Int {
case Ascending = 1
case Descending = -1
case Same = 0
}
 
infix operator <=> { precedence 130 }
protocol CombinedComparable: Comparable, Equatable {
func <=>(lhs: Self, rhs: Self) -> ComparisonOrdering
}
Something went wrong with that request. Please try again.