<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">A quick note addressing a misconception that you’ll want to clean up for a formal proposal:</div><div class=""><br class=""></div><div class="">NS_[EXTENSIBLE_]STRING_ENUMs both generate Swift structs, the difference is only in the explicitness of the rawValue initializer. To use the “other direction” analogy, you’d similarly want them to apply for rawValue-ed structs alone. The reasons are the same: only the structs are layout-compatible because enums are integers.</div><div class=""><br class=""></div><div class="">Once you go down this route, perhaps it doesn’t make sense to annotate the struct decls themselves anymore. Maybe you just want more @objc control over bridging the types. For example, maybe you want to introduce a feature so that static members that are layout-compatible with String are bridged as global strings with the supplied name.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 20, 2017, at 4:07 PM, Derrick Ho via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">Swift should not forsake objective-c. At least not when it comes enum strings. Although swift enums are suppose to be swift only, I think we should add a new attribute to slightly relax that. I think a good attribute would be @objcstring.</div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><br class="gmail_msg"></div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">By adding @objcstring, an objective-c exclusive class will be generated.</div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><br class="gmail_msg"></div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">@objcstring</div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">enum Planet {</div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"> case Jupiter</div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">}</div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><br class="gmail_msg"></div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">I have written up a proposal with more details on what it would look for objective-c.</div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><br class="gmail_msg"></div><a href="https://github.com/wh1pch81n/swift-evolution/blob/swift-enum-objc/proposals/NNNN-Swift-enum-strings-ported-to-Objective-c.md" class="gmail_msg" style="word-spacing:1px" target="_blank">https://github.com/wh1pch81n/swift-evolution/blob/swift-enum-objc/proposals/NNNN-Swift-enum-strings-ported-to-Objective-c.md</a><br class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><br class="gmail_msg"></div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">If no one objects to this proposal I'll submit it.</div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><br class="gmail_msg"></div><div class="gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">**notes: I am reviving this discussion so that I may submit this for Swift 4 stage 2</div></div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></body></html>