initWithVCardRepresentation: doesn't fully parse multi-record vCards

Originator:dogtown08
Number:rdar://4697953 Date Originated:
Status:Open Resolved:
Product: Product Version:
Classification: Reproducible:
 
I am trying to accept drags from AddressBook.app and an ABPeoplePicker. I register for the NSFilenamesPboardType and create a ABPerson instance with the VCard files dragged by using -initWithVCardRepresentation:. 
This works fine when a single person is dragged. If multiple people or groups are dragged, instead of getting a separate VCard for each person, a single VCard containing every person dragged is returned.
If I attempt to use -initWithVCardRepresentation: the returned ABPerson only has the data for the first person in the VCard.

Steps to Reproduce:
1. Register a view for the NSFilenamesPboardType
2. From an ABPeoplePicker or AddressBook.app, drag either a group or multiple people at the same time on the view.
3. Create an NSData instance containing the data in the single returned filename. (The filename is something like "[First Person] and X others.vcf")
4. Create an ABPerson instance with -initWithVCardRepresentation:, passing the data from the previous step

Expected Results: 
n/a

Actual Results:
As an ABPerson instance is only designed to hold data for a single person, only the first person is read from the data.

Workarounds:
If the option key is held down during the drag, a separate VCard for each person is posted on the NSFilenamesPboardType. Then, a separate ABPerson can be created for each file.

Notes:
ABGroup should implement an -initWithVCardRepresentation method that would read every person stored in the data.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!