Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Strings in Switch Statements: 'String' does not conform to protocol 'IntervalType'

I am having problems using strings in switch statements in Swift.

I have a dictionary called opts which is declared as <String, AnyObject>

I have this code:

switch opts["type"] { case "abc":     println("Type is abc") case "def":     println("Type is def") default:     println("Type is something else") } 

and on the lines case "abc" and case "def" I get the following error:

Type 'String' does not conform to protocol 'IntervalType' 

Can someone explain to me what I am doing wrong?

like image 370
Jimmery Avatar asked Nov 11 '14 12:11

Jimmery


1 Answers

This error is shown when an optional is used in a switch statement. Simply unwrap the variable and everything should work.

switch opts["type"]! {   case "abc":     println("Type is abc")   case "def":     println("Type is def")   default:     println("Type is something else") } 

Edit: In case you don't want to do a forced unwrapping of the optional, you can use guard. Reference: Control Flow: Early Exit

like image 116
Ayush Goel Avatar answered Sep 23 '22 14:09

Ayush Goel