Well, you have been using pointers all along. For example, all object variables that you have declared, as in
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.