मैं स्विफ्ट 3 में एनम के केस नाम क्यों मुद्रित नहीं कर सकता? - तेज, चार्ट

मेरे पास स्विफ्ट 3 में एक एनम है, मैं निम्नलिखित कोड का उपयोग करके इसका नाम प्रिंट कर सकता हूं:

enum परिभाषा

public enum Foo : Int {
case F1
}

निम्नलिखित कोड मिलेगा F1 सांत्वना में

print(Foo.F1)

लेकिन जब मैं इसमें परिभाषित एनमों को प्रिंट करने का प्रयास करता हूं चार्ट

मैं ही पा सकता हूं HorizontalAlignment सांत्वना में

print(Legend.HorizontalAlignment.center)

ऐसा क्यों है?

उत्तर:

उत्तर № 1 के लिए 4

क्योंकि एनम को ही घोषित किया गया है @objc। में Legend.swift:

@objc(ChartLegendHorizontalAlignment)
public enum HorizontalAlignment: Int
{
case left
case center
case right
}

इसे स्वयं आज़माएं, जोड़ें @objc आपके सामने Foo enum और आप इसे देखेंगे Foo छपा है। हालांकि मुझे नहीं पता है कि ऐसा क्यों होता है, यह इस तरह से होने की संभावना है @objc एक एनम डिबग विवरण को बदलता है, क्योंकि ऑब्जेक्टिव-सी एनम बिना किसी मेटाडेटा के संलग्नकों की एक श्रृंखला है। @objc enum अपने टाइप को प्रिंट करता है, जबकि एक स्विफ्ट enum अपने केस को प्रिंट करता है।

संबंधित चर्चा: शुद्ध स्विफ्ट एनम की तुलना में @objc एनम का अलग डिबग विवरण क्यों है?


संबंधित सवाल
सबसे लोकप्रिय