Использование VCards с ABAddressBook в iOS 5.0 / XCode 4.2 - PullRequest
4 голосов
/ 21 декабря 2011

Я пытаюсь сохранить копию всех записей в адресной книге, сохранить ее в файл как vcards, а затем извлечь этот файл (или версию этого файла) и добавить их обратно в адресную книгу, когда я нужны они, в контексте резервного копирования. Я знаю, что этот вопрос задавался ранее, но из-за моей жизни (и моих навыков программирования новичка) я не могу заставить его работать:

- (void)grabContacts
{
    ABAddressBookRef addressBook = ABAddressBookCreate();
    CFArrayRef contacts = ABAddressBookCopyArrayOfAllPeople(addressBook);
    NSData *vcards = (NSData *)ABPersonCreateVCardRepresentationWithPeople(contacts);

    [vcards autorelease];

    NSError *error;
    NSFileManager *fileMgr = [NSFileManager defaultManager];


    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *folderPath = [paths objectAtIndex:0]; 
    NSString *filePath = [folderPath stringByAppendingPathComponent:@"contacts.dat"];

   [NSKeyedArchiver archiveRootObject:vcards toFile:filePath];    

    NSLog(@"Documents directory: %@",
      [fileMgr contentsOfDirectoryAtPath: folderPath error:&error]);

   CFRelease(addressBook);
 }

Я использовал решение, опубликованное в Копирование контактов из одного источника в другой для принимающей стороны, но оно не работает, и из-за расплывчатой ​​документации на стороне Apple, я сломал свой мозг без результата ,

Заранее спасибо.

С. * * +1010

1 Ответ

0 голосов
/ 22 декабря 2011

Nevermind.Я нашел свою проблему.Я не разархивировал файлы, когда восстановил их.Глупый я получаю то, что глупый я заслуживает для программирования без обильного количества алкоголя.

...