macOS Contacts.app vs. mutt
Since installing macOS 10.12.2, I got some weird verbose warnings when using
contacts
in Mutt to complete email addresses:
[...]
CoreData: warning: dynamic accessors failed to find @property implementation for 'uniqueId' for entity ABCDInfo while resolving selector 'uniqueId' on class 'ABCDInfo'. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
CoreData: warning: dynamic accessors failed to find @property implementation for 'uniqueId' for entity ABCDContact while resolving selector 'uniqueId' on class 'ABCDContact'. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
CoreData: warning: dynamic accessors failed to find @property implementation for 'uniqueId' for entity ABCDPhoneNumber while resolving selector 'uniqueId' on class 'ABCDPhoneNumber'. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
CoreData: warning: dynamic accessors failed to find @property implementation for 'fullNumber' for entity ABCDPhoneNumber while resolving selector 'fullNumber' on class 'ABCDPhoneNumber'. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
CoreData: warning: dynamic accessors failed to find @property implementation for 'label' for entity ABCDPhoneNumber while resolving selector 'label' on class 'ABCDPhoneNumber'. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
CoreData: warning: dynamic accessors failed to find @property implementation for 'isPrimary' for entity ABCDPhoneNumber while resolving selector 'isPrimary' on class 'ABCDPhoneNumber'. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
CoreData: warning: dynamic accessors failed to find @property implementation for 'orderingIndex' for entity ABCDPhoneNumber while resolving selector 'orderingIndex' on class 'ABCDPhoneNumber'. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
[...]
These warning messages completely mess up the address selection in Mutt. Since
I could not find anything relating to this behaviour on the internet, I
implemented a quick work-around. Just set the query_command
in your .muttrc
from something like
set query_command = "contacts -Sf '%eTOKEN%n' '%s' | sed -e 's/TOKEN/\t/g'"
to
set query_command = "contacts -Sf '%eTOKEN%n' '%s' 2>&1 | grep -v CoreData | sed -e 's/TOKEN/\t/g'"
It simply redirects stderr
to stdout
and filters all lines containing
“CoreData”.