I have an app which uses a UISearchBar to dynamically search from an external API based on user input.
The app is searching the external API fine and d
"Tried to obtain the web lock from a thread other than the main thread or the web thread UIKit should not be called from a secondary thread"
The fix is conceptually simple; don't update the UI from your thread.
Assuming the parseDidComplete is where the message is sourced, then something like this will "work":
[delegate performSelectorOnMainThread: @selector(parseDidComplete) withObject: nil waitUntilDone: YES];
"Work" because threading is hard and this answer completely ignores any synchronization issues you might have.
Note that you'd be better off using NSOperation and NSOperationQueue. They are well documented and there are a bunch of examples.