Я работаю над библиотекой, где использую Swift
. Я хотел бы знать, есть ли лучший подход, который я могу использовать в следующем сценарии,
ViewController.swift
Movie.searchMovie(name: “AVENGERS”, completionHandler: (Result<[MovieInfo],Error>))
Вышеуказанный контроллер взят из примера приложения, где Я вызываю метод publi c в библиотеке Mov ie.
Mov ie .swift
public class Movie: NSObject {
public class func searchMovie(name: String, completionHandler: (Result<[MovieInfo],Error>)) {
Records.sharedInstance.searchMovieWithName(name: name, completionBlock: { (data, error) in
guard data != nil else {
completionBlock(Result.failure(error ?? “ERROR” as! Error))
}
guard let list = data as? [Item] else {
completionBlock(Result.failure(error ?? "ERROR" as! Error))
}
completionBlock(Result.success(list))
})
}
}
и
Records.swift
func searchMovieWithName(name: String, completionHandler: (Result<[MovieInfo],Error>)) {
//Implementation to search
}
Так ли это сделано? Можно ли как-нибудь лучше справиться с обработчиками завершения?