2016-02-10 12 views
6

erhalten Ich verwende Kontakte Framework in einer App. Die Sache, die ich versuche, ist, alle Kontakte nach ihren Containern zu kategorisieren. z.B. Facebook Kontakte werden unter dem Titel "Facebook", Google Kontakte unter "Google" sein. Aber wenn ich die Namen der Container einige Male ausdrücke, wird es leer oder null oder etwas vage, wie "Adressbuch". Gibt es eine Möglichkeit herauszufinden, welcher Container zu welchem ​​Konto gehört (lokal, facebook, google etc.). Danke im Voraus.Wie kann ich Containername mit Contacts 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

Haben Sie Interesse daran, dass Sie Fortschritte erzielt haben? – simonthumper

+0

nein habe ich bisher nicht. – Rezwan

Antwort

-1

Initialisierung des Arrays für mich gearbeitet:

NSArray * Behälter = [[NSArray alloc] init];

1

Ich verbrachte 2 Tage für dieses Problem, bekam aber keine Lösung.

Dann getan, dass mit einem Patch. Das ist für mich gearbeitet.

1

Der Debugger zeigt, dass CNContainer ein Mitglied namens accountIdentifier hat, aber es scheint immer Null zu sein. Ich frage mich, ob es mit einer Apple-privaten API verknüpft ist, die Contacts.app verwendet, um Kontonamen zu erhalten, die als Container-Labels verwendet werden. Aus irgendeinem Grund scheint es nicht, dass Apple möchte, dass wir diese Informationen haben. Vielleicht ist es sinnvoller für Exchange-Container, bei denen der Containername als Gruppenname fungiert.