【发布时间】:2017-06-09 06:23:00
【问题描述】:
我是 Reactive Cocoa for Swift 的新手,正在尝试为我的 Web 服务调用创建自定义信号。 我在分析器上遇到了内存泄漏,但是我不知道在哪里处理 Signal 以避免泄漏。
public func GetGroups() -> Signal<[GroupModel], SError>? {
let accToken:String? = KeychainWrapper.standard.string(forKey: "access_token")
let headers = ["Authorization":"Bearer " + accToken!]
let signal = Signal<[GroupModel],SError>({(obs:Observer<[GroupModel],SError>) -> Disposable?
in
Alamofire.request(serverUrl+"/api/group/groups",method:HTTPMethod.get,parameters:nil,encoding:URLEncoding.default,headers:headers)
.responseArray(completionHandler: {(data:DataResponse<[GroupModel]>) -> Void in
if data.error != nil{
//handle error
}else{
obs.send(value: data.result.value!)
}
})
return nil
})
return signal;
}
这就是我调用服务的方式。
_ = groupService.GetGroups()?
.observeResult{
self.dataSource = $0.value
self.collectionView?.reloadData()
}
【问题讨论】:
标签: swift cocoa memory-leaks swift3 reactive-cocoa