As long as you only need one customer defined enum and it is not expected to persist, than this will work.
> On Jul 17, 2015, at 1:57 PM, Stephen J. Butler <stephen.but...@gmail.com> > wrote: > > Or what about this? Tested this time... > > enum Foo { > case Bar > case Etc > case Etc_Etc > case Custom(String) > > func asString() -> String { > switch self { > case .Bar: return "Bar" > case .Etc: return "Etc" > case .Etc_Etc: return "Etc Etc" > case .Custom(let value): return value > } > } > > init(withString value: String) { > switch value { > case "Bar": self = .Bar > case "Etc": self = .Etc > case "Etc Etc": self = .Etc_Etc > default: > self = .Custom(value) > } > > } > } > > let a = Foo(withString: "Bar") > let b = Foo(withString: "Something Else") > > print("a = \(a.asString()); b = \(b.asString())") > > I guess more typing, and some room for error in the initializer, but it > does do away with the wrapper class. > > On Fri, Jul 17, 2015 at 3:39 PM, Quincey Morris < > quinceymor...@rivergatesoftware.com> wrote: > >> On Jul 17, 2015, at 13:33 , Stephen J. Butler <stephen.but...@gmail.com> >> wrote: >> >> >> How about using a Custom option with an associated String value? >> >> enum Foo:String { >> >> case Bar = “Bar" >> case Etc = “Etc" >> case Etc_Etc = “Etc Etc" >> case Custom(String) >> } >> >> >> Unfortunately that won’t compile. One alternative is: >> >> enum Foo: String { >> case Bar = "Bar" >> case Etc = "Etc" >> case Etc_Etc = "Etc Etc" >> } >> >> enum FooPlus { >> case AFoo (Foo) >> case AString (String) >> >> var asString: String { >> switch self >> { >> case let .AFoo (foo): return foo.rawValue >> case let.AString (string): return string >> } >> } >> } >> >> >> >> > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/iseecolors%40rsqrdc.us > > This email sent to iseecol...@rsqrdc.us _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com