gpt4 book ai didi

objective-c - Objective-C 方法中的静态变量是否跨实例共享?

转载 作者:IT老高 更新时间:2023-10-28 11:39:57 26 4
gpt4 key购买 nike

我想澄清一下,Objective-C 类的不同实例是否共享方法中出现的静态变量,或者每个实例是否都有自己的副本:

- (void) myMethod {
static int myVar = 0;
}

最佳答案

静态局部变量在方法调用和实例之间共享。您可以将它们视为仅在其方法中可见的全局变量:

- (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

关于objective-c - Objective-C 方法中的静态变量是否跨实例共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3199194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com