我正在按照 SOLID 原则和 MVC 架构构建一个简单的应用程序。我想在我的 NetworkClass 中解析来自服务器的图像,并在我的 ViewController 中的 CollectionView 中显示它们。这是我的视图控制器:
protocol NetworkServiceProtocol {
func parseImages() -> [Image]
}
class ViewController: UIViewController {
@IBOutlet weak var imageCollection: UICollectionView!
private let networkService: NetworkServiceProtocol
convenience init(service: NetworkServiceProtocol) {
self.init()
self.networkService = service
}
override func viewDidLoad() {
super.viewDidLoad()
images = networkService!.parseImages()
}
}
这是我的 NetworkService 类(稍后我将进行解析):
class NetworkService: NetworkServiceProtocol {
func parseImages() -> [Image] {
return [Image]()
}
}
问题是,当我运行此代码时,它在viewDidLoad()
调用networkService!
. 我看到问题在于实例化 NetworkServiceProtocol。我应该在哪里以及如何实例化它?任何帮助表示赞赏!