Как привести параметр функции к Any в функции, заданной в качестве аргумента метода? - PullRequest
0 голосов
/ 25 декабря 2018

Как привести параметр функции к Any в функции, заданной в качестве аргумента метода?

struct InitializationStaticData: Decodable {}

func method1(responseListener: @escaping (_ status:Int, _ data: InitializationStaticData?) -> Void)
{
    let dsa = responseListener as! (Int, Any?) -> Void // EXC_BREAKPOINT
    let asd = responseListener as! (Int, Decodable?) -> Void // EXC_BREAKPOINT
    method2(responseListener: sdd)
}

Я пытался привести его так:

func method2<T>(responseListener: @escaping (_ status: Int, _ data: Any?) -> Void)
{
}

1 Ответ

0 голосов
/ 25 декабря 2018

В основном общий подход верен.

Измените тип data на T и ограничьте универсальный тип Decodable

func method2<T : Decodable>(responseListener: @escaping (Int, T) -> Void)
{
}

Символы подчеркивания и метки параметров являются устаревшими в Swift 2, они не используются вSwift 3 +

...