Common Crypto C api: Why both CCCryptorUpdate() and CCCryptorFinal()?
Re-phrasing the comments into an answer as the question changed during comments:

CCCryptorFinal is necessary when CCCryptorUpdate is being used and padding is specified in order to know when the last block is being encrypted so the padding can be added.

The advantage to splitting up the process might be to use smaller buffers, etc, Consider encrypting a multi-GB file. 

Additionally there are encryption modes that are not supported by the one-shot CCCrypt which only supports ECB and CBC modes.