Some times the obvious thing is not the true thing. A case in point is contact syncing on Apple devices, particularly between an iPhone and an Apple computer.
You might think that if a contact is in Contacts on your iPhone, and you have iCloud contact syncing checked on for both your iPhone and Mac, that all contacts in Contacts will sync to your computer. This is not necessarily true.
If you, like me, use Gmail or other non-Apple email accounts, and access email through the web, you may notice that when you add a new contact on your phone it does not sync with Contacts on your Mac. If this is the case I will tell you the settings to check.
1) On your iPhone, go to Settings->iCloud and make sure Contacts is ON. On your Mac, go to System Preferences->iCloud and do the same.
2) On your iPhone, go to Settings->Mail,Contacts,Calendars. Scroll down to the Contacts section. See what you have listed as your Default Account. That is the account that contact changes will sync to. If it is a Gmail account, for example, any new contact will sync to Gmail contacts. It will also show up in the Contacts app on the iPhone, but will not sync to Contacts on your Mac. (I agree that this is confusing).
3) To get contacts to sync to your Mac, on your Mac go to System Preferences->Internet Accounts. Check to see if your Gmail account is listed. If not, add it by clicking Google in the right pane and follow the instructions for adding the account. Once you have the account, select it and make sure that Contacts is checked. You can uncheck all the other settings unless you are using these other Google services and want them synced to your Mac. Chances are you don’t since you have not missed them.
These steps should solve the problem and now all contact changes made on your iPhone will show up in Contacts on your Mac.
I know this might seem confusing and not very intuitive. If you have further questions about this feel free to contact me (no pun intended!).