2016-06-18 4 views
0

私はこの機能をViewModelに持っていますが、シグナルを返しますが、内部ブロックは機能していません。ブレークポイントを追加しようとしましたが、ブレークしません。ここに私のコードです。アクティブココア信号が機能しない

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 
      }) 

    } 

私はこの

self.signInViewModel.executeLoginAPI()

ように私のViewControllerでそれにアクセスする私の手をお願いします。ありがとう!

答えて

0

新しい信号を作成しただけで購読していないためです。 SignalProducerとRACSignalは、subscribe/startの後にのみ計算を開始します。

p.s.あなたがこのアクションのためにより良いSignalProducerを使用した場合には、

関連する問題