Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Playground contents demonstrating one way to get NSURL's associated with raw enumerations.
import Foundation
public enum Region: String {
static var _regionURLCache = [String: NSURL]();
case One = "http://region.meh/one";
case Two = "http://region.meh/two";
case Three = "http://region.meh/three";
public func URL() -> NSURL? {
var url: NSURL? = Region._regionURLCache[self.rawValue]
if (url == nil) {
url = NSURL(string: self.rawValue)
Region._regionURLCache[self.rawValue] = url
}
return url
}
}
for region in [Region.One, Region.Two, Region.Three] {
switch(region) {
case .One:
fallthrough
case .Two:
fallthrough
case .Three:
println(region.URL()?.path)
}
}
Region.One.URL()
Region.One.URL() === Region.One.URL()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment