gpt4 book ai didi

Objective-c:变量范围

转载 作者:太空宇宙 更新时间:2023-11-04 02:03:16 25 4
gpt4 key购买 nike

很长一段时间以来,我一直使用下面的 1 和 3,最近使用 4 来定义我的变量。

但是我注意到还有其他有效的定义是我对 Objective-C 2 的新定义,通过将方法和它们的内部变量放在一起可以使代码看起来更好。

有人可以验证评论中的断言吗?

static id var1; // 1. Shared among all classes and their instances defined in this file

id var2; // 2. Same as 1?

@implementation MyClass
{
id var3; // 3. Different variable for each instance
}

- (void)method
{
static id var4; // 4.1. Not accessible from other methods
// 4.2. Different for each instance?
}

id var5; // 5. Same as 3? Same as 1/2?

static id var6; // 6.1. Same as 1?
// 6.2. Not visible to other classes in this file?

@end

几个问题,例如 this一个有点相似,但 Objective-C 可能有一些差异。

最佳答案

静态标识符 var1;
=> 仅在当前翻译单元可见

id 变量2;
=> 全局可见(又名外部)

id 变量 3;
=> 实例变量。创建实例时创建 ([Class alloc])

静态标识符 var4;
=> 功能局部。在进程启动时创建。与 var1 相同的生命周期,但仅在函数内部可见。

id 变量5;
=> 与 var2 相同

静态标识符 var6;
=> 与 var1 相同

Objective-C 是忠实的 C 变体(恕我直言:)。

编辑了关于 var4 的不明确提及。

关于Objective-c:变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23926093/

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