Suche nach Nummer und Abrufen des Bildes mit ABAddressBook

8

Ich möchte im iphone Adressbuch über meine App suchen, indem ich die Nummer als Schlüssel verwende, und dann das mit diesem Kontakt verknüpfte Bild abrufen und im UIImageView anzeigen.

Ich habe versucht, das ABAddressBook-Framework zu verwenden, aber ich hatte keine Ahnung, wie ich vorgehen soll.

Kann mir bitte jemand die Lösungen oder irgendeinen alternativen Weg vorschlagen, dem ich folgen kann. Jedes Code-Snippet wäre auch eine große Hilfe !!

Jede Form von Hilfe wäre sehr bemerkenswert.

Vielen Dank im Voraus

    
devsri 25.02.2011, 10:12
quelle

2 Antworten

26

Der AB-Rahmen kann manchmal ein echter Schmerz sein. Aber es läuft auf eine Reihe von ziemlich einfachen Operationen hinaus. Zuerst müssen Sie eine ABAddressBook-Instanz erstellen:

%Vor%

Dann sollten Sie eine Kopie des Arrays aller Personen im Adressbuch erstellen und sie durchgehen und nach den gewünschten Daten suchen:

%Vor%

In Ihrer Schleife möchten Sie wahrscheinlich eine Referenz auf die einzelne Person erhalten:

%Vor%

Dann wollen Sie die Nummer, die Sie haben (wir nennen das inNumber ) mit jeder Telefonnummer vergleichen, die mit dieser bestimmten Person verbunden ist. Dazu benötigen Sie zuerst eine Liste aller Telefonnummern der Person:

%Vor%

Dann müssen Sie natürlich eine innere Schleife haben, die sich über die Telefonnummern jeder einzelnen Person bewegt:

%Vor%

Da die Telefonnummern sowohl Zahlen als auch Labels enthalten, müssen Sie die tatsächliche Telefonnummer als NSString extrahieren:

%Vor%

Jetzt können Sie endlich Zahlen vergleichen! Tun Sie dies mit den standardmäßigen NSString-Vergleichsmethoden, aber denken Sie daran, dass Sie sich um die Formatierung usw. kümmern müssen.

Sobald Sie die Person gefunden haben, die eine Telefonnummer hat, die mit inNumber übereinstimmt, möchten Sie, dass das Bild dieser Person in ein UIImage extrahiert wird:

%Vor%

Wenn es Zeit zum Beenden ist, müssen Sie Speicher aufräumen. Eine allgemeine Faustregel für das AB-Framework ist, dass alles mit Get in dem Funktionsnamen, den Sie nicht freigeben müssen, und irgendetwas mit Copy oder Create , das Sie freigeben müssen. In diesem Fall müssen Sie CFRelease() phonelist , allPeople und addressbook , aber nicht numPeople , person oder numPhones .

    
Jeff Hay 29.03.2011, 23:37
quelle
1
%Vor%     
Nidhin 10.01.2015 06:40
quelle