0
Reactive Cocoa for Swiftの新機能で、Webサービスコール用のカスタム信号を作成しようとしています。 プロファイラでメモリリークが発生しましたが、リークを避けるためにどこにSignalを配置するのか分かりません。Reactive Cocoa swift 3.0のメモリリーク
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()
}