How to declare protocol constrainted generic variable in Swift? -


i need create dictionary variable value of someotherclass class , conforms someprotocol. equals following declaration in objective-c:

nsmutabledictionary<someclass *, someotherclass<someprotocol> *> *someotherbysome; 

so, possible in same simple way using swift?

i need because can create func signature:

func somefunc<t: someotherclass t: someprotocol>(param: t, otherparam: string) 

and want values param parameter dictionary without type casting.

short answer

in swift cannot declare variable of given class and conform protocol.

possible solution (?)

however given definitions have

class someclass: hashable {     var hashvalue: int { return 0 } // logic goes here }  func ==(left:someclass, right:someclass) -> bool {     return true // logic goes here }  class someotherclass {} protocol someprotocol {} 

maybe can solve problem making someotherclass conform someprotocol

extension someotherclass: someprotocol { } 

now can simply

var dict : [someclass: someotherclass] = [someclass(): someotherclass()]  let someprotocolvalue: someprotocol = dict.values.first! 

does you?


Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -