Well, you have been using pointers all along. For example, all object variables that you have declared, as in
Fraction *fract1;
are actually pointer variables, as is noted at the end of the chapter. If you are doing compute-intensive work with numbers for example, then the most efficient way to process them would likely be with a C array of numbers (as opposed to an Objective-C array object of number objects). Processing the elements in that array sequentially would also likely be most efficient using a pointer instead of an index variable.
Another example might occur if you are manipulating data in a framebuffer (e.g., a video framebuffer). The fastest way to get data in an out of that buffer would likely be with a pointer that stores the memory address of that framebuffer. You could then efficiently read and write data in and out of the framebuffer using the pointer.
Cheers,
Steve