Tableview not receiving signals from Driver












0















I have the following MVVM-C + RxSwift code.



The problem is that the TableView is not receiving any signals. When I
debug the results I can see that the API call is returning what it should, the objects array is populated with objects but the tableview does not show any results. Here is the console output:



2018-11-13 16:12:08.107: searchText -> Event next(qwerty)
Search something: qwerty
2018-11-13 16:12:08.324: viewModel.data -> Event next()


Could it be the tableview itself? Maybe wrong custom cell setup?



ViewController.swift:



    tableView = UITableView(frame: self.view.frame)
tableView.delegate = nil
tableView.dataSource = nil
tableView.register(SearchResultCell.self, forCellReuseIdentifier: "SearchResultCell")

viewModel.data
.debug("viewModel.data", trimOutput: false)
.drive(tableView.rx.items(cellIdentifier: "SearchResultCell")) { row, object, cell in

cell.name.text = object.name
cell.something.text = object.something
}
.disposed(by: disposeBag)


ViewModel.swift:



let disposeBag = DisposeBag()
var searchText = BehaviorRelay(value: "something to search for")

lazy var data: Driver<[Object]> = {
return self.searchText.asObservable()
.debug("searchText", trimOutput: false)
.throttle(0.3, scheduler: MainScheduler.instance)
.distinctUntilChanged()
.flatMapLatest(searchSomething)
.asDriver(onErrorJustReturn: )
}()

func searchSomething(query: String) -> Observable<[Object]> {

print("Search something: (query)")

let provider = MoyaProvider<APIService>()

var objects = [Object]()

provider.rx.request(.search(query: query)).subscribe { event in
switch event {
case let .success(response):
do {
let responseJSON: NSDictionary = try (response.mapJSON() as? NSDictionary)!
objects = self.parse(json: responseJSON["results"] as Any)

} catch(let error) {
print(error)
}

break
case let .error(error):
print(error)
break
}
}
.disposed(by: disposeBag)

let result: Observable<[Object]> = Observable.from(optional: objects)

return result
}









share|improve this question

























  • From the debug output, the view model's resulting data is an empty array. Is this intentional?

    – tomahh
    Nov 14 '18 at 8:57











  • No, that seems to be the issue actually.

    – Blackbeard
    Nov 14 '18 at 9:02
















0















I have the following MVVM-C + RxSwift code.



The problem is that the TableView is not receiving any signals. When I
debug the results I can see that the API call is returning what it should, the objects array is populated with objects but the tableview does not show any results. Here is the console output:



2018-11-13 16:12:08.107: searchText -> Event next(qwerty)
Search something: qwerty
2018-11-13 16:12:08.324: viewModel.data -> Event next()


Could it be the tableview itself? Maybe wrong custom cell setup?



ViewController.swift:



    tableView = UITableView(frame: self.view.frame)
tableView.delegate = nil
tableView.dataSource = nil
tableView.register(SearchResultCell.self, forCellReuseIdentifier: "SearchResultCell")

viewModel.data
.debug("viewModel.data", trimOutput: false)
.drive(tableView.rx.items(cellIdentifier: "SearchResultCell")) { row, object, cell in

cell.name.text = object.name
cell.something.text = object.something
}
.disposed(by: disposeBag)


ViewModel.swift:



let disposeBag = DisposeBag()
var searchText = BehaviorRelay(value: "something to search for")

lazy var data: Driver<[Object]> = {
return self.searchText.asObservable()
.debug("searchText", trimOutput: false)
.throttle(0.3, scheduler: MainScheduler.instance)
.distinctUntilChanged()
.flatMapLatest(searchSomething)
.asDriver(onErrorJustReturn: )
}()

func searchSomething(query: String) -> Observable<[Object]> {

print("Search something: (query)")

let provider = MoyaProvider<APIService>()

var objects = [Object]()

provider.rx.request(.search(query: query)).subscribe { event in
switch event {
case let .success(response):
do {
let responseJSON: NSDictionary = try (response.mapJSON() as? NSDictionary)!
objects = self.parse(json: responseJSON["results"] as Any)

} catch(let error) {
print(error)
}

break
case let .error(error):
print(error)
break
}
}
.disposed(by: disposeBag)

let result: Observable<[Object]> = Observable.from(optional: objects)

return result
}









share|improve this question

























  • From the debug output, the view model's resulting data is an empty array. Is this intentional?

    – tomahh
    Nov 14 '18 at 8:57











  • No, that seems to be the issue actually.

    – Blackbeard
    Nov 14 '18 at 9:02














0












0








0








I have the following MVVM-C + RxSwift code.



The problem is that the TableView is not receiving any signals. When I
debug the results I can see that the API call is returning what it should, the objects array is populated with objects but the tableview does not show any results. Here is the console output:



2018-11-13 16:12:08.107: searchText -> Event next(qwerty)
Search something: qwerty
2018-11-13 16:12:08.324: viewModel.data -> Event next()


Could it be the tableview itself? Maybe wrong custom cell setup?



ViewController.swift:



    tableView = UITableView(frame: self.view.frame)
tableView.delegate = nil
tableView.dataSource = nil
tableView.register(SearchResultCell.self, forCellReuseIdentifier: "SearchResultCell")

viewModel.data
.debug("viewModel.data", trimOutput: false)
.drive(tableView.rx.items(cellIdentifier: "SearchResultCell")) { row, object, cell in

cell.name.text = object.name
cell.something.text = object.something
}
.disposed(by: disposeBag)


ViewModel.swift:



let disposeBag = DisposeBag()
var searchText = BehaviorRelay(value: "something to search for")

lazy var data: Driver<[Object]> = {
return self.searchText.asObservable()
.debug("searchText", trimOutput: false)
.throttle(0.3, scheduler: MainScheduler.instance)
.distinctUntilChanged()
.flatMapLatest(searchSomething)
.asDriver(onErrorJustReturn: )
}()

func searchSomething(query: String) -> Observable<[Object]> {

print("Search something: (query)")

let provider = MoyaProvider<APIService>()

var objects = [Object]()

provider.rx.request(.search(query: query)).subscribe { event in
switch event {
case let .success(response):
do {
let responseJSON: NSDictionary = try (response.mapJSON() as? NSDictionary)!
objects = self.parse(json: responseJSON["results"] as Any)

} catch(let error) {
print(error)
}

break
case let .error(error):
print(error)
break
}
}
.disposed(by: disposeBag)

let result: Observable<[Object]> = Observable.from(optional: objects)

return result
}









share|improve this question
















I have the following MVVM-C + RxSwift code.



The problem is that the TableView is not receiving any signals. When I
debug the results I can see that the API call is returning what it should, the objects array is populated with objects but the tableview does not show any results. Here is the console output:



2018-11-13 16:12:08.107: searchText -> Event next(qwerty)
Search something: qwerty
2018-11-13 16:12:08.324: viewModel.data -> Event next()


Could it be the tableview itself? Maybe wrong custom cell setup?



ViewController.swift:



    tableView = UITableView(frame: self.view.frame)
tableView.delegate = nil
tableView.dataSource = nil
tableView.register(SearchResultCell.self, forCellReuseIdentifier: "SearchResultCell")

viewModel.data
.debug("viewModel.data", trimOutput: false)
.drive(tableView.rx.items(cellIdentifier: "SearchResultCell")) { row, object, cell in

cell.name.text = object.name
cell.something.text = object.something
}
.disposed(by: disposeBag)


ViewModel.swift:



let disposeBag = DisposeBag()
var searchText = BehaviorRelay(value: "something to search for")

lazy var data: Driver<[Object]> = {
return self.searchText.asObservable()
.debug("searchText", trimOutput: false)
.throttle(0.3, scheduler: MainScheduler.instance)
.distinctUntilChanged()
.flatMapLatest(searchSomething)
.asDriver(onErrorJustReturn: )
}()

func searchSomething(query: String) -> Observable<[Object]> {

print("Search something: (query)")

let provider = MoyaProvider<APIService>()

var objects = [Object]()

provider.rx.request(.search(query: query)).subscribe { event in
switch event {
case let .success(response):
do {
let responseJSON: NSDictionary = try (response.mapJSON() as? NSDictionary)!
objects = self.parse(json: responseJSON["results"] as Any)

} catch(let error) {
print(error)
}

break
case let .error(error):
print(error)
break
}
}
.disposed(by: disposeBag)

let result: Observable<[Object]> = Observable.from(optional: objects)

return result
}






ios swift uitableview rx-swift frp






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 14 '18 at 10:45







Blackbeard

















asked Nov 14 '18 at 8:31









BlackbeardBlackbeard

3191417




3191417













  • From the debug output, the view model's resulting data is an empty array. Is this intentional?

    – tomahh
    Nov 14 '18 at 8:57











  • No, that seems to be the issue actually.

    – Blackbeard
    Nov 14 '18 at 9:02



















  • From the debug output, the view model's resulting data is an empty array. Is this intentional?

    – tomahh
    Nov 14 '18 at 8:57











  • No, that seems to be the issue actually.

    – Blackbeard
    Nov 14 '18 at 9:02

















From the debug output, the view model's resulting data is an empty array. Is this intentional?

– tomahh
Nov 14 '18 at 8:57





From the debug output, the view model's resulting data is an empty array. Is this intentional?

– tomahh
Nov 14 '18 at 8:57













No, that seems to be the issue actually.

– Blackbeard
Nov 14 '18 at 9:02





No, that seems to be the issue actually.

– Blackbeard
Nov 14 '18 at 9:02












1 Answer
1






active

oldest

votes


















1















  • When using flatMap, you do not want to create nested subscriptions. You will create an Observable that returns the expected result, and flatMap will take care of subscribing to it. In the current state of things, searchSomething will always return an empty array, as Observable.from(optional: objects) will be called before the request has a chance to complete.

  • Since version 10.0 of Moya, provider will cancel the requests it created when deallocated. Here, it will be deallocated when execution exits searchSomething, hence the network request won't have time to finish. Moving provider's declaration to the view model's level solves this issue.


Here's searchSomething(query: String) -> Observable<[Object]> rewritten.



let provider = MoyaProvider<APIService>()

func searchSomething(query: String) -> Observable<[Object]> {

print("Search something: (query)")

return provider.rx.request(.search(query: query)).map { (response) -> [Object] in
let responseJSON: NSDictionary = try (response.mapJSON() as? NSDictionary)!

return self.parse(json: responseJSON["results"] as Any)
}
}


Instead of doing the transformation in subscribe, it's done in map, which will be called for every next event, being passed the value associated with the event.






share|improve this answer


























  • Great! But how about if I want to map the objects directly in the request, like this: .map([Object].self, atKeyPath: "results", using: decoder, failsOnEmptyData: true) ? It returns PrimitiveSequence<RxSwift.SingleTrait, Swift.Array<Project.Object>>>, how can I convert it to Observable<[Object]> ?

    – Blackbeard
    Nov 14 '18 at 9:34











  • I'm not sure I understand the question. Maybe it's worth posting a different question for this, with more detail.

    – tomahh
    Nov 14 '18 at 9:35











  • The result of .map {} is 'PrimitiveSequence<SingleTrait, [Track]>', so I get: Cannot convert return expression of type 'PrimitiveSequence<SingleTrait, [Track]>' to return type 'Observable<[Track]>'

    – Blackbeard
    Nov 14 '18 at 9:36













  • Add .asObservable(). Moya's request method returns a Single (a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert from Single to Observable.

    – tomahh
    Nov 14 '18 at 9:38











  • Great - now searchSomething() does not give errors. But in the return of the data variable, the code execution stops at .flatMapLatest(searchSomething), which means that .asDriver(onErrorJustReturn: ) is not called.

    – Blackbeard
    Nov 14 '18 at 9:53













Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53295891%2ftableview-not-receiving-signals-from-driver%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1















  • When using flatMap, you do not want to create nested subscriptions. You will create an Observable that returns the expected result, and flatMap will take care of subscribing to it. In the current state of things, searchSomething will always return an empty array, as Observable.from(optional: objects) will be called before the request has a chance to complete.

  • Since version 10.0 of Moya, provider will cancel the requests it created when deallocated. Here, it will be deallocated when execution exits searchSomething, hence the network request won't have time to finish. Moving provider's declaration to the view model's level solves this issue.


Here's searchSomething(query: String) -> Observable<[Object]> rewritten.



let provider = MoyaProvider<APIService>()

func searchSomething(query: String) -> Observable<[Object]> {

print("Search something: (query)")

return provider.rx.request(.search(query: query)).map { (response) -> [Object] in
let responseJSON: NSDictionary = try (response.mapJSON() as? NSDictionary)!

return self.parse(json: responseJSON["results"] as Any)
}
}


Instead of doing the transformation in subscribe, it's done in map, which will be called for every next event, being passed the value associated with the event.






share|improve this answer


























  • Great! But how about if I want to map the objects directly in the request, like this: .map([Object].self, atKeyPath: "results", using: decoder, failsOnEmptyData: true) ? It returns PrimitiveSequence<RxSwift.SingleTrait, Swift.Array<Project.Object>>>, how can I convert it to Observable<[Object]> ?

    – Blackbeard
    Nov 14 '18 at 9:34











  • I'm not sure I understand the question. Maybe it's worth posting a different question for this, with more detail.

    – tomahh
    Nov 14 '18 at 9:35











  • The result of .map {} is 'PrimitiveSequence<SingleTrait, [Track]>', so I get: Cannot convert return expression of type 'PrimitiveSequence<SingleTrait, [Track]>' to return type 'Observable<[Track]>'

    – Blackbeard
    Nov 14 '18 at 9:36













  • Add .asObservable(). Moya's request method returns a Single (a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert from Single to Observable.

    – tomahh
    Nov 14 '18 at 9:38











  • Great - now searchSomething() does not give errors. But in the return of the data variable, the code execution stops at .flatMapLatest(searchSomething), which means that .asDriver(onErrorJustReturn: ) is not called.

    – Blackbeard
    Nov 14 '18 at 9:53


















1















  • When using flatMap, you do not want to create nested subscriptions. You will create an Observable that returns the expected result, and flatMap will take care of subscribing to it. In the current state of things, searchSomething will always return an empty array, as Observable.from(optional: objects) will be called before the request has a chance to complete.

  • Since version 10.0 of Moya, provider will cancel the requests it created when deallocated. Here, it will be deallocated when execution exits searchSomething, hence the network request won't have time to finish. Moving provider's declaration to the view model's level solves this issue.


Here's searchSomething(query: String) -> Observable<[Object]> rewritten.



let provider = MoyaProvider<APIService>()

func searchSomething(query: String) -> Observable<[Object]> {

print("Search something: (query)")

return provider.rx.request(.search(query: query)).map { (response) -> [Object] in
let responseJSON: NSDictionary = try (response.mapJSON() as? NSDictionary)!

return self.parse(json: responseJSON["results"] as Any)
}
}


Instead of doing the transformation in subscribe, it's done in map, which will be called for every next event, being passed the value associated with the event.






share|improve this answer


























  • Great! But how about if I want to map the objects directly in the request, like this: .map([Object].self, atKeyPath: "results", using: decoder, failsOnEmptyData: true) ? It returns PrimitiveSequence<RxSwift.SingleTrait, Swift.Array<Project.Object>>>, how can I convert it to Observable<[Object]> ?

    – Blackbeard
    Nov 14 '18 at 9:34











  • I'm not sure I understand the question. Maybe it's worth posting a different question for this, with more detail.

    – tomahh
    Nov 14 '18 at 9:35











  • The result of .map {} is 'PrimitiveSequence<SingleTrait, [Track]>', so I get: Cannot convert return expression of type 'PrimitiveSequence<SingleTrait, [Track]>' to return type 'Observable<[Track]>'

    – Blackbeard
    Nov 14 '18 at 9:36













  • Add .asObservable(). Moya's request method returns a Single (a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert from Single to Observable.

    – tomahh
    Nov 14 '18 at 9:38











  • Great - now searchSomething() does not give errors. But in the return of the data variable, the code execution stops at .flatMapLatest(searchSomething), which means that .asDriver(onErrorJustReturn: ) is not called.

    – Blackbeard
    Nov 14 '18 at 9:53
















1












1








1








  • When using flatMap, you do not want to create nested subscriptions. You will create an Observable that returns the expected result, and flatMap will take care of subscribing to it. In the current state of things, searchSomething will always return an empty array, as Observable.from(optional: objects) will be called before the request has a chance to complete.

  • Since version 10.0 of Moya, provider will cancel the requests it created when deallocated. Here, it will be deallocated when execution exits searchSomething, hence the network request won't have time to finish. Moving provider's declaration to the view model's level solves this issue.


Here's searchSomething(query: String) -> Observable<[Object]> rewritten.



let provider = MoyaProvider<APIService>()

func searchSomething(query: String) -> Observable<[Object]> {

print("Search something: (query)")

return provider.rx.request(.search(query: query)).map { (response) -> [Object] in
let responseJSON: NSDictionary = try (response.mapJSON() as? NSDictionary)!

return self.parse(json: responseJSON["results"] as Any)
}
}


Instead of doing the transformation in subscribe, it's done in map, which will be called for every next event, being passed the value associated with the event.






share|improve this answer
















  • When using flatMap, you do not want to create nested subscriptions. You will create an Observable that returns the expected result, and flatMap will take care of subscribing to it. In the current state of things, searchSomething will always return an empty array, as Observable.from(optional: objects) will be called before the request has a chance to complete.

  • Since version 10.0 of Moya, provider will cancel the requests it created when deallocated. Here, it will be deallocated when execution exits searchSomething, hence the network request won't have time to finish. Moving provider's declaration to the view model's level solves this issue.


Here's searchSomething(query: String) -> Observable<[Object]> rewritten.



let provider = MoyaProvider<APIService>()

func searchSomething(query: String) -> Observable<[Object]> {

print("Search something: (query)")

return provider.rx.request(.search(query: query)).map { (response) -> [Object] in
let responseJSON: NSDictionary = try (response.mapJSON() as? NSDictionary)!

return self.parse(json: responseJSON["results"] as Any)
}
}


Instead of doing the transformation in subscribe, it's done in map, which will be called for every next event, being passed the value associated with the event.







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 14 '18 at 10:34

























answered Nov 14 '18 at 9:11









tomahhtomahh

9,61923058




9,61923058













  • Great! But how about if I want to map the objects directly in the request, like this: .map([Object].self, atKeyPath: "results", using: decoder, failsOnEmptyData: true) ? It returns PrimitiveSequence<RxSwift.SingleTrait, Swift.Array<Project.Object>>>, how can I convert it to Observable<[Object]> ?

    – Blackbeard
    Nov 14 '18 at 9:34











  • I'm not sure I understand the question. Maybe it's worth posting a different question for this, with more detail.

    – tomahh
    Nov 14 '18 at 9:35











  • The result of .map {} is 'PrimitiveSequence<SingleTrait, [Track]>', so I get: Cannot convert return expression of type 'PrimitiveSequence<SingleTrait, [Track]>' to return type 'Observable<[Track]>'

    – Blackbeard
    Nov 14 '18 at 9:36













  • Add .asObservable(). Moya's request method returns a Single (a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert from Single to Observable.

    – tomahh
    Nov 14 '18 at 9:38











  • Great - now searchSomething() does not give errors. But in the return of the data variable, the code execution stops at .flatMapLatest(searchSomething), which means that .asDriver(onErrorJustReturn: ) is not called.

    – Blackbeard
    Nov 14 '18 at 9:53





















  • Great! But how about if I want to map the objects directly in the request, like this: .map([Object].self, atKeyPath: "results", using: decoder, failsOnEmptyData: true) ? It returns PrimitiveSequence<RxSwift.SingleTrait, Swift.Array<Project.Object>>>, how can I convert it to Observable<[Object]> ?

    – Blackbeard
    Nov 14 '18 at 9:34











  • I'm not sure I understand the question. Maybe it's worth posting a different question for this, with more detail.

    – tomahh
    Nov 14 '18 at 9:35











  • The result of .map {} is 'PrimitiveSequence<SingleTrait, [Track]>', so I get: Cannot convert return expression of type 'PrimitiveSequence<SingleTrait, [Track]>' to return type 'Observable<[Track]>'

    – Blackbeard
    Nov 14 '18 at 9:36













  • Add .asObservable(). Moya's request method returns a Single (a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert from Single to Observable.

    – tomahh
    Nov 14 '18 at 9:38











  • Great - now searchSomething() does not give errors. But in the return of the data variable, the code execution stops at .flatMapLatest(searchSomething), which means that .asDriver(onErrorJustReturn: ) is not called.

    – Blackbeard
    Nov 14 '18 at 9:53



















Great! But how about if I want to map the objects directly in the request, like this: .map([Object].self, atKeyPath: "results", using: decoder, failsOnEmptyData: true) ? It returns PrimitiveSequence<RxSwift.SingleTrait, Swift.Array<Project.Object>>>, how can I convert it to Observable<[Object]> ?

– Blackbeard
Nov 14 '18 at 9:34





Great! But how about if I want to map the objects directly in the request, like this: .map([Object].self, atKeyPath: "results", using: decoder, failsOnEmptyData: true) ? It returns PrimitiveSequence<RxSwift.SingleTrait, Swift.Array<Project.Object>>>, how can I convert it to Observable<[Object]> ?

– Blackbeard
Nov 14 '18 at 9:34













I'm not sure I understand the question. Maybe it's worth posting a different question for this, with more detail.

– tomahh
Nov 14 '18 at 9:35





I'm not sure I understand the question. Maybe it's worth posting a different question for this, with more detail.

– tomahh
Nov 14 '18 at 9:35













The result of .map {} is 'PrimitiveSequence<SingleTrait, [Track]>', so I get: Cannot convert return expression of type 'PrimitiveSequence<SingleTrait, [Track]>' to return type 'Observable<[Track]>'

– Blackbeard
Nov 14 '18 at 9:36







The result of .map {} is 'PrimitiveSequence<SingleTrait, [Track]>', so I get: Cannot convert return expression of type 'PrimitiveSequence<SingleTrait, [Track]>' to return type 'Observable<[Track]>'

– Blackbeard
Nov 14 '18 at 9:36















Add .asObservable(). Moya's request method returns a Single (a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert from Single to Observable.

– tomahh
Nov 14 '18 at 9:38





Add .asObservable(). Moya's request method returns a Single (a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert from Single to Observable.

– tomahh
Nov 14 '18 at 9:38













Great - now searchSomething() does not give errors. But in the return of the data variable, the code execution stops at .flatMapLatest(searchSomething), which means that .asDriver(onErrorJustReturn: ) is not called.

– Blackbeard
Nov 14 '18 at 9:53







Great - now searchSomething() does not give errors. But in the return of the data variable, the code execution stops at .flatMapLatest(searchSomething), which means that .asDriver(onErrorJustReturn: ) is not called.

– Blackbeard
Nov 14 '18 at 9:53




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53295891%2ftableview-not-receiving-signals-from-driver%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Bressuire

Vorschmack

Quarantine