Erreurs lors de l'obtention d'un téléphone
Dans l'éditeur de script, si je lance:
tell application "Contacts" to get the vcard of person 301
le résultat est:
"BEGIN:VCARD VERSION:3.0 PRODID:-//Apple Inc.//Mac OS X 10.13.6//EN
N:Bar;Foo;;; FN:Foo Bar
EMAIL;type=INTERNET;type=WORK;type=pref:[email protected]
TEL;type=HOME;type=VOICE;type=pref:555 555 1212
CATEGORIES:Address Book
UID:1e6e6e410a662666
X-ABUID:18B18941-E2B7-48CE-BB34-4A26CC0E23BB:ABPerson
END:VCARD
"
Notez que cette personne a une adresse électronique et un numéro de téléphone. Si je cours:
tell application "Contacts" to get the value of emails of person 301
le résultat est:
Cependant si je cours:
tell application "Contacts" to get the value of phones of person 301
Je reçois
error "Les contacts ont une erreur: Impossible d'obtenir la valeur de chaque téléphone de la personne 301." numéro -1728 de la valeur de chaque téléphone de la personne 301
et si je cours
tell application "Contacts" to get the phones of person 301
error "Les contacts ont eu une erreur: le gestionnaire AppleEvent a échoué." numéro -10000
Que se passe-t-il si la personne n'a pas de numéro de téléphone?
Edit: Basé sur l’une des réponses proposées à ce post, j’ai essayé
tell application "Contacts"
set thePhoneNumber to value of phones of people
end tell
qui m'a donné quelque chose comme
{ Valeur manquante , {}, valeur manquante , valeur manquante , ...}
avec beaucoup plus de "valeurs manquantes" et "{} s" car j'ai environ 2000 entrées dans la base de données.
En recherchant cela, j'ai trouvé que la "valeur manquante" apparaît pour les personnes qui ont un numéro de téléphone et le "{}" pour les personnes qui n'ont pas de numéro de téléphone. Si j'exécute la même commande avec "emails", j'obtiens une liste d'adresses électroniques pour chaque personne ayant des e-mails et une liste vide "{}" pour les personnes qui n'en ont pas.
C'est sous Mac OS 10.13.6, Contacts 11.0 (1808.8).
Ai-je découvert un bogue ou y a-t-il un problème avec mon script?
la source
Réponses:
Cela devrait fonctionner pour vous ...
Cela fonctionne aussi pour moi ...
Vous pouvez également essayer d'exécuter ce code suivant
Ensuite, vous passerez à l'item 301 de ce résultat et s'il n'y a pas de numéro de téléphone ... C'est peut-être pour cela que vous obtenez l'erreur.
la source