On Wednesday, August 31, 2016 at 4:00:27 PM UTC-4, Brendan Duddridge wrote:
> However, this technique doesn't really work with Couchbase Lite because I
> cannot access the model objects on the main thread those objects that I
> fetched on the background thread using the NSOperationQueue.
One technique is to create what is known as a view model from each query
row or CBLite model object. View models are usually subclasses of NSObject
and have the properties you would use to display search results in our UI,
such as strings, UIImages, etc. As such, you can pass them between threads.
The view model would have a documentID property for the original document
so you could actually retrieve it when the user selects it. For example,
the view model would contain the display name of the result, possibly an
thumbnail, etc. Whatever you would normally use to display search rows.
Another advantage is that if you have a non-homogeneous search you can use
the same view model class to display the results for multiple document
types. You could have different initializers for each document type or a
single initializer that checks the row values / document type and sets the
So, you would loop though the resulting rows or CBLModels and build view
models from them, then send them to the main thread for display. You can
make them immutable or possibility even reuse them if you find the query
creates a large number of objects. If you can create view models from query
row values alone, as opposed to CBLModels, you can avoid having to load the
document at all until the user actually selects it in the search results.
You received this message because you are subscribed to the Google Groups
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email
To view this discussion on the web visit
For more options, visit https://groups.google.com/d/optout.