tags:

views:

40

answers:

1

I want to clarify whether different instances of an Objective-C class share static variables that occur inside methods, or if each instance gets its own copy:

- (void) myMethod {
    static int myVar = 0;
}
+2  A: 

It's the same as a static variable in C; the instances will share the variable. If you want each instance to have its own copy, you want an instance variable (declared in the @interface block).

Carl Norum
You can't really say "same as C." "Subjective" C doesn't have instances in the Objective sense.
iter
@iter, it's the same as any static variable in C, is all I mean. If it's a static global there is only one per compilation unit, if it's a static local, there is one per function (or method in Objective-C) that references it.
Carl Norum