Re: Trouble with imported enums in Swift
Re: Trouble with imported enums in Swift
- Subject: Re: Trouble with imported enums in Swift
- From: Rick Mann <email@hidden>
- Date: Tue, 21 Oct 2014 18:15:53 -0700
> On Oct 21, 2014, at 18:13 , Greg Parker <email@hidden> wrote:
>
>
>> On Oct 21, 2014, at 5:45 PM, Rick Mann <email@hidden> wrote:
>>
>> I've created a sample project showing the behavior and submitted it with radar #18730653.
>
> Thanks for the bug report. There is a Swift importer bug here. Your enumerators all have a common name prefix, but that name prefix differs from the type name. I think the importer tries to remove that prefix from the Swift names but gets it wrong.
>
> typedef NS_ENUM(int, McpResponseStatus) {
> MCP_RESPONSE_SUCCESS = 0,
> MCP_RESPONSE_BAD_TOKEN = 1
> };
> // Swift names should be McpResponseStatus.SUCCESS etc.
> // Swift is instead mistakenly importing these as McpResponseStatus.CP_RESPONSE_SUCCESS etc. (with only 'M' removed).
>
>
> Workaround: add an enumerator that doesn't have the same name prefix. Then the importer will not try to strip any common prefix and you can use the long names in Swift.
>
> typedef NS_ENUM(int, McpResponseStatus) {
> MCP_RESPONSE_SUCCESS = 0,
> MCP_RESPONSE_BAD_TOKEN = 1,
> SwiftHackForMcpResponseStatus
> };
> // Swift names are McpResponseStatus.MCP_RESPONSE_SUCCESS etc.
Thanks. In the end I made Swift equivalents.
Would it not be possible to just import any enum? That will help Swift adoption.
--
Rick Mann
email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden