2011-12-21 4 views
4

Я пытаюсь сохранить копию всех записей в адресной книге, сохранить ее в файл в виде vcards и затем извлечь этот файл (или версию этого файла) и добавьте их обратно в адресную книгу, когда мне это нужно, в контексте резервного копирования. Я знаю, что этот вопрос был задан ранее, но для жизни меня (и моих newbish навыков программирования) я не могу заставить его работать:Использование VCards с ABAddressBook в iOS 5.0/XCode 4.2

- (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); 
} 

Я использовал решение размещенное в Copying contacts from one source to another для принимающей стороны, но это не сработает, и из-за расплывчатой ​​документации со стороны Apple я разрушил свой мозг без каких-либо результатов.

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

S.

ответ

0

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

+0

Поздравляем с решением! Когда вы в состоянии, пожалуйста, отметьте свой ответ как «принятый», чтобы другие могли узнать о вашем успехе. Приветствия ~ –