2016-02-10 9 views
6

Sto utilizzando il framework Contatti in un'app. la cosa che sto cercando di fare è categorizzare tutti i contatti dai loro contenitori. per esempio. i contatti di Facebook saranno sotto il titolo "Facebook", i contatti google sotto "Google". Ma quando stampo i nomi dei contenitori alcune volte viene vuoto o nullo o qualcosa di vago, come "Rubrica". C'è un modo per scoprire quale contenitore appartiene a quale account (locale, facebook, google ecc.). Grazie in anticipo.Come posso ottenere il nome del contenitore utilizzando Contatti Framework (iOS9)

CNContactStore *contactStore = [[CNContactStore alloc]init]; 
    NSArray *keysToFetch = @[CNContactGivenNameKey,CNContactFamilyNameKey,CNContactIdentifierKey,CNContactMiddleNameKey,CNContactPhoneNumbersKey]; 
    NSError *error; 
    NSArray *containers = [contactStore containersMatchingPredicate:nil error:&error]; 
    for (CNContainer *container in containers) { 
     NSLog(@"Container: %@",container.name); 
    } 
+0

Interessato se hai avuto qualche progresso con questo? – simonthumper

+0

no, non ho fino ad ora. – Rezwan

risposta

-1

Inizializzazione matrice funzionato per me:

NSArray * contenitori = [[NSArray alloc] init];

1

Ho trascorso 2 giorni per questo problema ma non ho trovato alcuna soluzione.

Quindi fatto con una patch. Questo ha funzionato per me.

if ([container.name isEqualToString:@"Card"]) { 
        NSLog(@"iCloud"); 
       }else if ([container.name isEqualToString:@"Address Book"]){ 
        NSLog(@"google"); 
       }else if ([container.name isEqualToString:@"Contacts"]){ 
        NSLog(@"Yahoo"); 
       }else{ 
        NSLog(@"Other"); 
       } 
1

Il debugger mostra che CNContainer ha un membro denominato AccountIdentifier, ma sembra sempre di essere nulla. Mi chiedo se sia associato a un'API Apple privata che Contacts.app utilizza per ottenere i nomi account da utilizzare come etichette contenitore. Vale a dire, per qualche motivo non sembra che Apple voglia che abbiamo questa informazione. Forse è più utile per i contenitori di Exchange, dove il nome del contenitore funziona come un nome di gruppo.

Problemi correlati