The same thing, I do not have an answer to its solution, and I think that it may be an iOS 8 error ( UPDATE : yes, this is it, Apple has confirmed it).
In my tests on iOS 7.x, the submission time of ABPeoplePicker is less than 0.2 s.
The problem only appears on iOS 8.x and only the first time you present ABPeoplePicker. The ABPeoplePicker view takes about 3 seconds in my application and about 1.5 seconds in the sample application, which only makes the ABPeoplePicker presentation by pressing a button. I tested it both on the simulator and on a device with ~ 20 contacts.
Preloading the instance does not significantly change the presentation time, as I expected. I also tried to get the presentation downstream and set the animation to NO, but it is still slow on iOS 8.
The time profiler does not help me because I do not see an unexpected long calculation time.
While we are waiting for the proposed bug fix, I think the best workarounds are to show an activity progress indicator when loading ABPeoplePicker or implement our own ABPeoplePicker.
I implemented my own, you can find it on GitHub: VeeContactPicker and, of course, use it! đ
NEWS FROM APPLE:
The Apple team responded to my error report:
Apple Developer Relations 16-Jun-2015 00:36 AM
We believe this issue was addressed in the latest beta version of iOS 9. This is a preliminary update to iOS 9. For detailed installation instructions, see the release notes. Please check this release. If you still have problems, provide any relevant magazines or information that may help us investigate. *
IOS 9 update
In iOS 9, ABFramework is deprecated for the new object-oriented contact structure that ships with the new collector [see CNContactPicker ]! Unfortunately, it looks like the problem has not been resolved, the logic has been updated, but the ViewController is still the same as iOS 8. So CNContactPicker still loads and displays the control very slowly ...
I reported an Apple error while waiting for the news ...