Статические локальные объекты распределяются между вызовами методов и экземплярами.
Вы можете думать о них как о глобалах, которые видны только внутри их методов:
- (void) showVars {
int i = 0;
static int j = 0;
i++; j++;
NSLog(@"i = %i ; j = %i", i, j);
}
[...]
[obj1 showVars];
[obj2 showVars];
[obj1 showVars];
[obj2 showVars];
Над вызовами на 2 разных экземплярах будет выводиться:
i = 1 ; j = 1
i = 1 ; j = 2
i = 1 ; j = 3
i = 1 ; j = 4