Skip to content

Could not cast value of type 'Swift.Optional<Swift.Optional<Any>>' to 'Swift.String' #163

@KC-218

Description

@KC-218

Sorry, my app crash and get this error.

And this is my code.

@objc protocol Animal {
    var name: String { get }
    @objc optional var running: Bool { get }
}

class Horse: Animal {
    let name: String
    let running: Bool

    init(name: String, running: Bool) {
        self.name = name
        self.running = running
    }

    convenience init(name: String) {
        self.init(name: name, running: false)
    }
}

class ResolverParameterInjectionVC: UIViewController, Resolving {

    override func viewDidLoad() {
        super.viewDidLoad()

        let smallHorse: Animal = Resolver.resolve(name: "small", args: "Spirit")
        let bigHorse: Animal = Resolver.resolve(name: "big", args: ["name": "Lucky", "running": true])        
    }
    
}

extension Resolver {
    public static func registerResolverParameterInjectionVC() {
        
        register { (_, args) in
            Horse(name: args.get())
        }.implements(Animal.self, name: "small")
    
        register { (_, args) in
            Horse(name: args("name"), running: args("running"))
        }.implements(Animal.self, name: "big")
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions