In Swift enumerations, what’s the difference between raw values and associated values?



In Swift enumerations, what’s the difference between raw values and associated values?..

Answer / iosraj

Raw values are used to associate constant (literal) values to enum cases. The value type is part of the enum type, and each enum case must specify a unique raw value (duplicate values are not allowed).

The following example shows an enum with raw values of type Int:

enum IntEnum : Int {

case ONE = 1

case TWO = 2

case THREE = 3

}

An enum value can be converted to its raw value by using the rawValue property:

var enumVar: IntEnum = IntEnum.TWO

var rawValue: Int = enumVar.rawValue

A raw value can be converted to an enum instance by using a dedicated initializer:

var enumVar: IntEnum? = IntEnum(rawValue: 1)

Associated values are used to associate arbitrary data to a specific enum case. Each enum case can have zero or more associated values, declared as a tuple in the case definition:

enum AssociatedEnum {

case EMPTY

case WITH_INT(value: Int)

case WITH_TUPLE(value: Int, text: String, data: [Float])

}

Whereas the type(s) associated to a case are part of the enum declaration, the associated value(s) are instance specific, meaning that an enum case can have different associated values for different enum instances.

Is This Answer Correct ?    2 Yes 0 No

Post New Answer

More Apple iOS Swift Interview Questions

What is mvvm in swift?

1 Answers  


How do I create a swift file in xcode?

1 Answers  


Is swift open source?

1 Answers  


What is cocoa swift?

1 Answers  


How to post an http request with a json body in swift?

1 Answers  


In Swift How to connect UI under Swift Environment ?

1 Answers  


Can you explain completion handler?

1 Answers  


Explain grand central dispatch (gdc).

1 Answers  


What is a delegate in swift?

1 Answers  


What is the benefit of using guard statement in swift?

1 Answers  


Can structs inherit swift?

1 Answers  


Do swift classes inherit from nsobject?

1 Answers  


Categories