ABAddressBook

JekarJekar Membre
20:21 modifié dans API AppKit #1
Salut,
Je voudrais utiliser l addressebook.
j ai bien ajouter dans mon projet le framwork. Mais des que je fais ca :
ABAddressBook *addressBook;

ca me renvoie une erreur.

Un peu d aide merci :)

Réponses

  • 20:21 modifié #2
    dans 1197147395:

    Salut,
    Je voudrais utiliser l addressebook.
    j ai bien ajouter dans mon projet le framwork. Mais des que je fais ca :
    ABAddressBook *addressBook;

    ca me renvoie une erreur.

    Un peu d aide merci :)


    Rajoute :
    <br />#import &lt;AdresseBook/ABAdressBook.h&gt;<br />
    

    juste avant ton @interface
  • JekarJekar Membre
    20:21 modifié #3
    Ok, ca marche.
    Disons que je veuille mettre le nom de l utilisateur courant puis l afficher dans un NStextfield.

    <br />ABAddressBook *addressBook = [ABAddressBook sharedAddressBook];<br />	 ABPerson *aPerson = [addressBook me];<br />	 NSString *txt = [aPerson:kABFirstNameProperty];<br />	 [txt1 setStringValue:txt];<br />
    


    Pourquoi ca marche pas?
  • Philippe49Philippe49 Membre
    20:21 modifié #4
    dans 1197150577:


    Pourquoi ca marche pas?



    kABFirstNameProperty est une constante, non ?

    Les connexions dans IB sont-elles correctes ?
  • JekarJekar Membre
    20:21 modifié #5
    Pour l adresse book j ai pas de connexion dans IB...
  • Philippe49Philippe49 Membre
    20:21 modifié #6
    dans 1197201312:

    Pour l adresse book j ai pas de connexion dans IB...


    Dans IB, ton textfield est-il connecté comme un  IBOutlet de l'instance de ton contrôleur (la classe où tu as mis le code que tu as cité au début de ce post) ?
  • JekarJekar Membre
    20:21 modifié #7
    Oui oui, le textfield est bien connecte.
    J arrive a mettre du texte dedans. Mais pas le nom du proprietaire de ABadressBook
  • AliGatorAliGator Membre, Modérateur
    20:21 modifié #8
    La ligne
    NSString *txt = [aPerson:kABFirstNameProperty];
    
    ne veux rien dire en fait.

    kABFirstNameProperty est une constante. Tu pourrais la remplacer par sa valeur, qui doit très certainement j'imagine être une chaà®ne de caractères servant de clé dans un dictionnaire.

    Dans la documentation Apple de ABPerson tu as une exemple d'ailleurs qui aurait dû te mettre sur la voie, pour la récupération de téléphones. De plus il est indiqué :
    See ABRecord for common methods to get and set properties. See the “Constants” section for a list of all the properties, labels, and keys used to access fields in a person record.

    Pour les "Constants" tu as déjà  dû aller faire un tour vers le lien puisque tu as trouvé la constante "kABFirstNameProperty". Il suffit de faire un tour vers la doc de ABRecord (classe parent de ABPerson) pour savoir comment la récupérer.
    Comme dans le tableau de constantes on t'indique que kABFirstNameProperty est une propriété de type NSString (on s'en serait douté), tu sais que le [tt]valueForProperty[/tt] te retournera une NSString, donc il suffit d'écrire :
    NSString * firstName = [aPerson valueForProperty: kABFirstNameProperty];
    
    et ensuite tu utilises la chaà®ne firstName comme tu veux, par exemple en la mettant dans ton NSTextField comme tu le fais avec ta dernière ligne de code.
  • JekarJekar Membre
    20:21 modifié #9
    super merci. :)
Connectez-vous ou Inscrivez-vous pour répondre.