【发布时间】:2016-05-17 16:59:16
【问题描述】:
问题
我有以下结构
类 UITableViewController (Presentation) -> 类 Contents(Domain) -> 类 API(Infrastructure)
Contents 类通过 API 类获取原始数据并形成内容,然后传递给 UITableViewController。
我想在 API 类中使用 Alamofire 做 Networking。
我查看了stackoverflow,只找到了UITableViewController直接访问API类的例子。从表示层直接访问基础设施层是我们不应该做的事情。 像这样 How to return value from Alamofire
如何在 DDD 结构中实现 Alamofire?
我想实现这样的目标
UITableViewController
class MyTableViewController: UITableViewController {
var contents: Contents?
override func viewDidLoad() {
super.viewDidLoad()
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
// do some task
self.contents = Contents.get("MyContents")
self.tableView.reloadData()
}
}
}
内容
class Contents: NSObject {
static func get(contentsName: String) -> Contents {
let data = MyAPI.getRequest("https://xxxx.com/myContents")
// Form contents
let contents = ContentsFactory(data)
return contents
}
}
API
class MyAPI: NSObject {
static getRequest(url) -> NSData {
// Get and return data using alamofire
}
}
【问题讨论】:
标签: swift networking alamofire