ContactDictionaryParser

public struct ContactDictionaryParser : ContactParser

Default implementation of the ContactParser protocol.

Parse contact data from json. Each key from JSON represents property name from CNMutableContact type.

Example:

{
  "contactType": "person",
  "givenName": "Michael"
}

DateComponents is represented as a JSON dictionary:

Example:

{
  "birthday": {
    "year": 2016,
    "month": 5,
    "day": 19
  }
}

CNLabeledValue is represented as a JSON dictionary. The dictionary key is used as label. The value from the dictionary for the key is used as value.

Example:

{
  "date1": {
    "year": 2017,
    "month": 2,
    "day": 17
  }
}

Dates, social profiles, phone numbers, email addresses, url addresses, postal addresses, contact relationships and instant message addresses are constructed as a list of dictionaries.

Example:

{
  "phoneNumbers": [
    {
      "work": {
        "stringValue": "0 1234567890"
      }
    },
    {
      "mobile": {
        "stringValue": "0 1234567890"
      }
    },
    {
      "nil": {
        "stringValue": "0 1234567890"
      }
    }
  ]
}

Note

"nil" in the dictionary keys are converted to nil value.

Seealso

ContactsHandler

Seealso

For full example check contacts.json file in the test project.

  • Contact store used for saving contacts.

    Declaration

    Swift

    public var store: CNContactStore
  • Initialize parser with contact store.

    Declaration

    Swift

    public init(with store: CNContactStore = CNContactStore())

    Parameters

    store

    Contact store used for saving contacts.

  • Parse JSON dictionary (represented as Any) and return parsed contact object.

    Throws

    ParserError if the provided data are not of a type [String: Any].

    Declaration

    Swift

    public func parse(_ data: Any) throws -> CNMutableContact

    Parameters

    data

    JSON dictionary to parse.

    Return Value

    Parsed contact.