Pages

04 November, 2023

'Cannot find type in scope' error when access public enum as class variable in swift

how can I use enum under extension into another class? I have no problem to use it under function directly. However I got 'Cannot find type '.home' in scope' error when set as a variable
extension Color {

public enum ColorUsage {
case home([String])
case school([String])
case park([String])

var description: String {
switch self {
case .home: return "my home"
case .school: return "kid school"
case .park: return "family park"
}
}

func getValue() -> [String] {
switch self {
case .home(let value),
.school(let value),
.park(let value):
return value
}
}
}

func findColor(places: [ColorUsage]) {
for eachPlace in places {
...
}
}
}

class MyClass {
func useColor() {
let places = [.home(["home1", "home2"]), .school(["AAA", "BBB"]), .park(["you park", "his park"])] /// issue with 'Cannot find type '.home' in scope'
let places = Color.findColor(places: places)

let places = Color.findColor(places: [.home(["home1", "home2"]), .school(["AAA", "BBB"]), .park(["you park", "his park"])]) /// no issue
}
}

No comments:

Post a Comment

Thanks