[swift-users] Printing Enums?
Slava Pestov
spestov at apple.com
Mon Jul 17 17:40:41 CDT 2017
There’s already a radar filed for this (I don’t know if there’s a JIRA bug though).
The problem is that the standard library’s reflection mechanism only knows how to map the in-memory representation of an enum to a case name for native Swift enums. Objective-C enums are represented by their ‘raw value’, and we don’t store the mapping in a way that’s accessible to the reflection code.
Slava
> On Jul 17, 2017, at 3:33 PM, Alex Blewitt via swift-users <swift-users at swift.org> wrote:
>
>> On 17 Jul 2017, at 15:15, Michael Rogers via swift-users <swift-users at swift.org <mailto:swift-users at swift.org>> wrote:
>>
>> Hi, All:
>>
>> Can someone please enlighten me as to why the first enum works as expected, giving me Melbourne, but the second gives UIModalPresentationStyle rather than fullScreen?
>
> Sure - it's because it's an alias that is imported via Objective-C rather than defined in Swift:
>
> typedef NS_ENUM(NSInteger, UIModalPresentationStyle) {
> UIModalPresentationFullScreen = 0,
> UIModalPresentationPageSheet NS_ENUM_AVAILABLE_IOS(3_2) __TVOS_PROHIBITED,
> UIModalPresentationFormSheet NS_ENUM_AVAILABLE_IOS(3_2) __TVOS_PROHIBITED,
> UIModalPresentationCurrentContext NS_ENUM_AVAILABLE_IOS(3_2),
> UIModalPresentationCustom NS_ENUM_AVAILABLE_IOS(7_0),
>
> (you can see this in the UIViewController.h file in the UIKit, which is found underneath your Xcode install)
>
> The importer notes that the name of such typedef'd constants effectively become translated into an enum as far as Swift source code is concerned, but it's a different kind of case.
>
> Having said that, it might be a bug in the case that the description of the constant isn't the name of the element type. It would be worth raising this on bugs.swift.org <http://bugs.swift.org/> and use this example in case there's something that can be done to fix it.
>
> Alex
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170717/dc65ff57/attachment.html>
More information about the swift-users
mailing list