> '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