Comparing Objects

You compare two Core Foundation objects with the CFEqual function. If the two objects are essentially equal, the function returns a boolean true value. “Essential” equality depends on the type of objects compared. For example, when you compare two CFString objects, Core Foundation considers them essentially equal when they match character by character, regardless of their encodings or mutability attribute. Two CFArray objects are considered equal when they have the same count of elements and each element object in one array is essentially equal with its counterpart in the other array. Obviously, compared objects must be of the same type (or a mutable or immutable variant of the same type) to be considered equal.

The following code fragment shows how you might use the CFEqual function to compare a constant with a passed-in parameter:

Listing 1  Comparing Core Foundation objects

void stringTest(CFStringRef myString) {
    Boolean equal = CFEqual(myString, CFSTR(“Kalamazoo”));
    if (!equal) {
        printf(“They’re not equal!");
    }
    else {
        printf(“They’re equal!”):
    }
}