Renamed method -countForProperty: to countForMultiValueProperty:
Renamed method -identifiersForProperty: to identifiersForMultiValueProperty:
Implemented method +isMultiValueProperty:
Implemented method +primitiveTypeOfProperty:
Removed method -kind
Implemented method -isPerson
Implemented method -isOrganization
Renamed method -secitonKeyForName to +sectionKeyForName
Renamed method -numberOfPhoneNumbersMatchingTerms: to -numberOfPhoneNumbersMatchingTerms:preciseMatch:
Implemented method -identifierOfMultiValueProperty:matchingTerm:
Renamed property contactIDs to hashTable
Use class method instead of instance method
Renamed contactIDs to hashTable
Renamed properties
Added property authorizationStatus
Added property phoneNumberCache
Added property hashTableSortedByPhone
Renamed method -requestAddressBookAccess to -requestAddressBookAccessWithCompletionHandler:
Added property serial_queue
Added property semaphore
Renamed method -unarchiveDictionary to -unarchiveDictionaryWithFileName:
Renamed method -deleteArchiveForSelector: to -deleteArchiveWithFileName:
Implemented method +fileNameForSelector:
Implemented method +recordIDBasedComparatorWithSortOrdering:andAddressBookRef:
Implemented method +documentsDirectoryPath
Refactored loadAddressBook call
Indentation