Tableview not receiving signals from Driver
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
add a comment |
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
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
add a comment |
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
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
ios swift uitableview rx-swift frp
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
- When using
flatMap
, you do not want to create nested subscriptions. You will create anObservable
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, asObservable.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.
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'srequest
method returns aSingle
(a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert fromSingle
toObservable
.
– tomahh
Nov 14 '18 at 9:38
Great - nowsearchSomething()
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
|
show 5 more comments
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
- When using
flatMap
, you do not want to create nested subscriptions. You will create anObservable
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, asObservable.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.
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'srequest
method returns aSingle
(a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert fromSingle
toObservable
.
– tomahh
Nov 14 '18 at 9:38
Great - nowsearchSomething()
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
|
show 5 more comments
- When using
flatMap
, you do not want to create nested subscriptions. You will create anObservable
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, asObservable.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.
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'srequest
method returns aSingle
(a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert fromSingle
toObservable
.
– tomahh
Nov 14 '18 at 9:38
Great - nowsearchSomething()
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
|
show 5 more comments
- When using
flatMap
, you do not want to create nested subscriptions. You will create anObservable
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, asObservable.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.
- When using
flatMap
, you do not want to create nested subscriptions. You will create anObservable
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, asObservable.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.
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'srequest
method returns aSingle
(a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert fromSingle
toObservable
.
– tomahh
Nov 14 '18 at 9:38
Great - nowsearchSomething()
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
|
show 5 more comments
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'srequest
method returns aSingle
(a specialisation of Observable with guaranty that at maximum one next event will be emited). Swift cannot implicitely convert fromSingle
toObservable
.
– tomahh
Nov 14 '18 at 9:38
Great - nowsearchSomething()
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
|
show 5 more comments
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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