This is the documentation in iOS 6
Users are able to grant or deny access to contact data on a per-app basis. To request // access to contact data, call ABAddressBookRequestAccessWithCompletion. This will not // block the app while the user is being asked to grant or deny access. Until access has // been granted, a non-NULL ABAddressBookRef will not contain any contacts and any attempt to // modify contacts will fail with CFErrorRef returning kABOperationNotPermittedByUserError. // The user will only be prompted the first time access is requested; any subsequent calls // to ABAddressBookCreateWithOptions will use the existing permissions. The completion // handler is called on an arbitrary queue. If the ABAddressBookRef is used throughout the app, // then all usage should be dispatched to the same queue to use ABAddressBookRef in a // thread-safe manner
It doesn't say same thread anymore. Just same queue. So it's okay to use NSOperationQueue to access this ABAddressBookRef? Can I?
Note: That question ask whether we can tell NSOperationQueue to use one specific thread. This one ask if ABAddressBook can be used ACROSS threads within the same NSOperationgQueue (perhaps a serial one)
There are 2 DIFFERENT way to accomplish the same thing. Hence the question is different.