Framework
- Core Foundation
Overview
CFArray and its derived mutable type, CFMutableArray, manage ordered collections of values called arrays. CFArray creates static arrays and CFMutableArray creates dynamic arrays.
You create a static array object using either the CFArray
or CFArray
function. These functions return an array containing the values you pass in as arguments. (Note that arrays can’t contain NULL
pointers; in most cases, though, you can use the k
constant instead.) Values are not copied but retained using the retain callback provided when an array was created. Similarly, when a value is removed from an array, it is released using the release callback.
CFArray’s two primitive functions CFArray
and CFArray
provide the basis for all other functions in its interface. The CFArray
function returns the number of elements in an array; CFArray
gives you access to an array’s elements by index, with index values starting at 0.
A number of CFArray functions allow you to operate over a range of values in an array, for example CFArray
lets you apply a function to values in an array, and CFArray
searches an array for the value that matches its parameter. Recall that a range is defined as {start, length}
, therefore to operate over the entire array the range you supply should be {0, N}
(where N
is the count of the array).
CFArray is “toll-free bridged” with its Cocoa Foundation counterpart, NSArray
. This means that the Core Foundation type is interchangeable in function or method calls with the bridged Foundation object. Therefore, in a method where you see an NSArray *
parameter, you can pass in a CFArray
, and in a function where you see a CFArray
parameter, you can pass in an NSArray instance. This also applies to concrete subclasses of NSArray. See Toll-Free Bridged Types for more information on toll-free bridging.