[swift-evolution] [Proposal] Enum string interoperability with Objective-C and Swift

Derrick Ho wh1pch81n at gmail.com
Thu Jan 5 17:58:22 CST 2017

I updated the proposal


And I also posted the question on Reddit.


On Wed, Jan 4, 2017 at 2:51 PM Derrick Ho <wh1pch81n at gmail.com> wrote:

The underline can be omitted. To remain more consistent.

enum City: String {
case NewYork = "New York"

typedef NSString * City;
static City const CityNewYork = @"New York";

On Wed, Jan 4, 2017 at 2:22 PM Rod Brown <rodney.brown6 at icloud.com> wrote:

I'm not part of the core team, of course, but I like this change in

My one concern in this case would be choosing a naming convention for the
back port that makes sense both ways. The naming convention you propose (
EnumName_EnumCase) seems inconsistent with the current import of strings
from Obj-C to Swift. Could we find a way to unify them?

On 31 Dec 2016, at 4:15 am, Derrick Ho via swift-evolution <
swift-evolution at swift.org> wrote:

I'm trying to revive an old thread. I'd like to hear from the community.

Can we make a swift enum string interoperable with Objective-C?

Currently NS_STRING_ENUM ports from objective-c to swift but not the other
way around.

I feel that if you can go one direction you should be able to go back.

enum City: String {
case NewYork = "New York"

Make this available as a global string in objective -c ?
On Wed, Nov 23, 2016 at 5:55 AM Derrick Ho <wh1pch81n at gmail.com> wrote:

I think enum strings should gain better interoperability with swift.
Something like this:

enum City: String {

    case NewYork = "New York"


This can be ported over to Objective-c like this:

typedef NSString * City;

static City const City_NewYork = @"New York";

swift-evolution mailing list
swift-evolution at swift.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170105/5ed986c7/attachment.html>

More information about the swift-evolution mailing list