Как передать любой класс как общий в замыкание в Swift - PullRequest
0 голосов
/ 18 апреля 2019

Я хочу передать любой тип класса как общий в замыкание при выполнении вызова API и вернуть объект этого класса после получения данных с сервера, но я не могу реализовать это надлежащим образом. Может кто-нибудь, пожалуйста, помогите мне в этом отношении?

Мой класс API:

class APICall: NSObject {
    public func getDataFromServer<T>(urlString:String, fileType: FileType, completionBlock: (([T]) -> Void)!) {

        //API calling here and parsing data and loaded to imageContainer, now can't pass imageContainer in completionBlock
        let imageContainer = [ImageInfo]()
        completionBlock(imageContainer)
    }
}

Я также не могу правильно вызвать этот метод из вызывающего класса:

var imageContainer = [ImageInfo]()
self.aPICall.getDataFromServer(urlString: PATH_FOR_JSON_DATA, fileType: .json, completionBlock: {(data) in                
                print(data)
                self.imageContainer = data    
            })

1 Ответ

0 голосов
/ 18 апреля 2019

Есть только универсальные функции и универсальные типы.так что универсальный не замыкание в swift

Здесь есть четкое объяснение обобщение как параметры замыкания в swift

...