| Derived from | |
| Framework | AddressBook/ABAddressBookC.h |
| Companion guide | |
| Declared in | ABAddressBookC.h |
The ABMultiValue and ABMutableMultiValue opaque types are used to represent properties that might have multiple values. Each value in a multi-value list must be the same type, and has an associated pre-defined or user-defined label, and unique identifier. The labels, however, need not be unique. For example, you can have multiple “Home” phone numbers. Each multi-value object may have a primary identifier—used as a default value when a label is not provided. For example, a person record may have multiple addresses with the labels “Home” and “Work”, where “Work” is designated as the primary value. Instances of ABMutableMultiValue are mutable, see ABMultiValue for additional functions that access the content of a multi-value list.
You can use either the ABMultiValueAdd or ABMultiValueInsert functions
to add value/label pairs to a multi-value list. You can remove an
entry in a multi-value list using the ABMultiValueRemove function. You can
also replace values and labels using the ABMultiValueReplaceLabeland ABMultiValueReplaceValue functions.
Use the ABMultiValueSetPrimaryIdentifier function
to set the primary identifier—that is, designate the corresponding
value as the default value for a multi-value list. Use the ABMultiValueCopyIdentifierAtIndex function
to get the unique identifier for a value/label pair.
The ABMutableMultiValue opaque type is “toll-free bridged”
with its Objective-C counterpart. This means that the ABMutableMultiValueRef type
is interchangeable in function or method calls with instances of
the ABMutableMultiValue class.
Adds a value and its label to a multi-value list.
bool ABMultiValueAdd ( ABMutableMultiValueRef multiValue, CFTypeRef value, CFStringRef label, CFStringRef *outIdentifier );
The multi-value list you wish to modify.
An object representing a value in a multi-value
list--it must be of the correct type. For example, if multiValue is
the value for a property of type kABMultiStringProperty,
then value needs to be a CFString
object. See Property Types for a list of supported types in a multi-value list
(see descriptions of the kABMulti... constants).
If value is NULL,
this function raises an exception.
The label for value—it
need not be unique. If label is NULL,
this function raises an exception.
If value is added successfully, this parameter returns the new identifier.
true if
successfully, false otherwise.
This function performs no type checking and will let you add
a value whose type does not match the types of the other values
in the list. However, if you try to use a multi-value list whose
values are not all of the same type, functions, such as the ABRecord ABRecordSetValue function,
will returns NULL or kABErrorInProperty.
ABAddressBookC.hReturns a newly created mutable multi-value list object.
ABMutableMultiValueRef ABMultiValueCreateMutable ( void );
A newly created ABMutableMultiValue object. You are responsible for releasing this object.
ABAddressBookC.h
Inserts a value and its label at the given index in a multi-value list.
bool ABMultiValueInsert ( ABMutableMultiValueRef multiValue, CFTypeRef value, CFStringRef label, CFIndex index, CFStringRef *outIdentifier );
The multi-value list you wish to modify.
An object representing a value in a multi-value
list--it must be of the correct type. For example, if multiValue is
the value for a property of type kABMultiStringProperty, then value needs
to be a CFString object. See Property Types for a list of supported types in a multi-value list
(see descriptions of the kABMulti... constants).
If value is NULL,
this function raises an exception.
The label for value—it
need not be unique. If label is NULL,
this function raises an exception.
The index to insert value at. If index is out of bounds, this function raises an exception.
If value is added successfully, this parameter returns the new identifier.
true if
successfully, false otherwise.
This function performs no type checking and will let you add
a value whose type does not match the types of the other values
in the list. However, if you try to use a multi-value list whose
values are not all of the same type, functions, such as the ABRecord ABRecordSetValue function,
will returns NULL or kABErrorProperty.
ABAddressBookC.h
Removes the value and label at the given index.
bool ABMultiValueRemove ( ABMutableMultiValueRef multiValue, CFIndex index );
The multi-value list you wish to modify.
The index of the entry to be removed. If index is out of bounds, this function raises an exception.
true if
successfully, false otherwise.
ABAddressBookC.h
Replaces the label at the given index.
bool ABMultiValueReplaceLabel ( ABMutableMultiValueRef multiValue, CFStringRef label, CFIndex index );
The multi-value list you wish to modify.
The new label at index—it
need not be unique. If label is NULL,
this function raises an exception.
The index of the entry to be modified. If index is out of bounds, this function raises an exception.
true if
successfully, false otherwise.
ABAddressBookC.h
Replaces the value at the given index.
bool ABMultiValueReplaceValue ( ABMutableMultiValueRef multiValue, CFTypeRef value, CFIndex index );
The multi-value list you wish to modify.
An object representing the new value in a
multi-value list--it must be of the correct type. For example, if multiValue is
the value for a property of type kABMultiStringProperty, then value needs
to be a CFString object. See Property Types for a list of supported types in a multi-value list
(see descriptions of the kABMulti... constants).
If value is NULL,
this function raises an exception.
The index of the entry to be modified. If index is out of bounds, this function raises an exception.
true if
successfully, false otherwise.
ABAddressBookC.h
Sets the primary value to be the value for the given identifier.
bool ABMultiValueSetPrimaryIdentifier ( ABMutableMultiValueRef multiValue, CFStringRef identifier );
The multi-value list you wish to modify.
The identifier corresponding to the value
you wish to designate as the primary value for this multi-value
list. Use the ABMultiValueCopyIdentifierAtIndex function
to get the identifier given the index. If identifier is NULL,
this function raises an exception.
true if
successfully, false otherwise.
ABAddressBookC.hA reference to an ABMutableMultiValue object.
typedef struct __ABMultiValue *ABMutableMultiValueRef;
ABAddressBookC.h
Last updated: 2003-08-20