是否在实例之间共享Objective-C方法中的静态变量?
问题描述:
我想澄清一下,Objective-C类的不同实例是否共享方法内部出现的静态变量,或者每个实例是否都有自己的副本:
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;
}
答
与C中的静态变量相同;实例将共享变量.如果希望每个实例都有自己的副本,则需要一个实例变量(在@interface
块中声明).
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).