> 've been fighting now with the AdressBook API for a while and found a 
> disturbing problem. Maybe someone can help.
> 
> I'm trying to use the AddressBook as my main person "database" in my 
> application. I've create a small function that accepts drag - drops from the 
> Address book to add a new person in my app. So far so good.
> 
> I'm trying after to show in my application details about that linked person 
> and that's where everything falls down.
> 
> On drop, I read the vCard created by the AddressBook using this line:
> 
> ABPerson* aPerson = [[ABPerson alloc] initWithVCardRepresentation:filedata];

That always creates a brand new contact with a brand new uniqueID.  As you 
observe.  I'm pretty sure it's not an appropriate way to pass around a 
*reference* to an existing contact.  That's what -[ABRecord uniqueId] is for.  
You should get the uniqueId, pass that around, and then use -[ABAddressBook 
recordForUniqueId:] to look up the contact.

- Ben

> 
> When doing this, the UID of my person gets re-generated. I wanted to use the 
> UID as my reference to my original address book record and dig the 
> information using it. But since its re-generated upon read of the vCard, no 
> luck. So the call:
>       ABAddressBook* addressBook = [ABAddressBook addressBook];
>       ABRecord* abRecord = [addressBook recordForUniqueId:personId];
> 
> always return null. 
> But, if I use the sharedAddressBook instead, my UIDs still get re-generated 
> but this guy (the sharedAddressBook) can find the records but only in the 
> same execution of the application. Upon restart, same old no-match problem.
> 
> There must be something i REALLY don't understand about the AB but can't find 
> anything more, out of ideas.
> 
> Anybody knows what's going on? Any way we can prevent my vCard initialization 
> from re-genrating the UID? If not, then what would be the correct way to 
> refer to AB records from another application? Running a search based on names 
> sounds bad compared to using direct pointers to records, the UID.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to