【发布时间】:2020-04-25 16:52:59
【问题描述】:
我正在开发一个使用 Swift 的库。我想知道在以下情况下我可以使用什么更好的方法,
ViewController.swift
Movie.searchMovie(name: “AVENGERS”, completionHandler: (Result<[MovieInfo],Error>))
上面的控制器来自我在电影库中调用公共方法的示例应用程序。
Movie.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
}
这是怎么做到的?无论如何我可以使用完成处理程序做得更好吗?
【问题讨论】:
标签: ios swift swift3 completionhandler