gpt4 book ai didi

swift - react 性 cocoa 信号不起作用

转载 作者:行者123 更新时间:2023-11-30 13:19:43 27 4
gpt4 key购买 nike

我的 ViewModel 中有这个函数,它返回一个信号,但内部 block 不起作用,我尝试添加断点,但它没有中断。这是我的代码。

func executeLoginAPI() -> RACSignal {

var sessionDataTask: NSURLSessionDataTask = NSURLSessionDataTask()

return RACSignal.createSignal({
(subscriber: RACSubscriber!) -> RACDisposable! in

//I've added break point here but it doesn't break.
let manager: APIManager = APIManager.sharedInstance

let parameters: NSDictionary = ["email": self.email, "password": self.password]

sessionDataTask = manager.POST(APIAtlas.loginUrl, parameters: parameters, success: {
(task: NSURLSessionDataTask!, responseObject: AnyObject!) in

print(responseObject as! NSDictionary)
subscriber.sendNext(responseObject)
subscriber.sendCompleted()
}, failure: {
(task : NSURLSessionDataTask!, error: NSError!) in

/*if let task = task.response as? NSHTTPURLResponse {}*/
})!

let dispose: RACDisposable = RACDisposable(block: {
print("cancel request!")
sessionDataTask.cancel()
subscriber.sendCompleted()
})

return dispose
})

}

我像这样在我的 viewController 上访问它

self.signInViewModel.executeLoginAPI()

请帮帮我。谢谢!

最佳答案

因为您只创建了新信号但没有订阅。 SignalProducer 和 RACSignal 仅在订阅/启动后才开始计算。

附:如果您在 swift 上编写,则使用更好的 SignalProducer 来执行此操作

关于swift - react 性 cocoa 信号不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37892898/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com