There is no benefit in Objective-C that I know of. AFAIK, every modern Objective-C compiler allocates stack space for local variables at the beginning of a function or method. Defining a variable in a loop simply does not allow the name to be used outside the loop and does not allow the compiler to reuse the stack space if it wants.
. : ? (++) ( , , )