I have the same situation. I have an array of C ++ objects that provide information in a table view.
As Ben mentioned, I also have a temporary shadow array into which new information is downloaded via the Internet. When the request is complete, I will reconcile this array with the one that supports tableview, which is pretty fast. The question is how to protect the array during this negotiation.
I am performing a reconciliation on the main thread, but I'm not sure what is sufficient to protect against conflicts, especially if the user clicks on a record while waiting for a request; the main object that it is viewing can be deleted.
There is a similar question for your (and mine) here: Update UITableView with threads
but the answers rip off the poster for background operations that are too long, instead of answering his question.
I am going to use NSLock and acquire it before modifying the array and all the delegate methods of the UITableView, unless someone has a better idea.
Oscar source share