【发布时间】:2017-06-16 01:09:46
【问题描述】:
我正在尝试通过 Alamofire 发出 GET 请求并期望返回数据。当我在我的 Viewcontroller 中初始化我的 Data 类时它工作正常,比如
let dataRequest = DataClass()
然后调用我的函数来获取数据,但是当我尝试像这样声明它时
let dataRequest: DataClass!
并尝试调用 GET 函数 它说意外发现为零。
我强制展开而不是初始化的原因是因为在我的数据类中,我有一个像 init(address: String, Zip: Double) 这样的 init 函数。
我将分享我的课程,所以也许有人可以给我一些关于为什么它返回 nil 的见解。
class FirstViewController {
var dataRequest: DataClass!
override func viewDidLoad() {
super.viewDidLoad()
dataRequest.downloadData { // Returns nil at this point
let initData = DataClass(dataRequest._address)
}
}
}
数据类
Class DataClass {
var _address: String!
init(address: String) {
_address = address
}
func downloadProperties(completed: @escaping downloadComplete) {
Alamofire.request(Listings).responseJSON { response in
if let result = response.result.value {
let dict = JSON(result)
if let data = dict["data"].dictionary {
if let listingResultDict = data["listings"]?.array {
for list in listingResultDict {
if let propertyAddress = list["data"]["name"].string {
self._address = propertyName
}
}
}
}
}
complete()
}
}
}
常量
typealias downloadComplete = () -> ()
如果需要进一步说明,请告诉我。
【问题讨论】:
标签: ios swift networking get alamofire