在Objective-C中声明静态变量的正确方法是什么?

好的,在C,C,C#和Objective-C之间切换时,仍然重新调整,所以有时我的头旋转.这一次,由于我已经看到至少有三种不同的方法在Objective-C中声明静态变量,所以我更加困惑,如果你认为它只是C本身的超集,那么第四个.那么哪些是正确的?

附加问题

如果我们要共享一个独立变量(即不是一个静态类变量,而是一个刚刚在标题中定义的变量)的方式与“C”(头中的“extern”中的ala)相同

选项A

foo.h中

@interface Foo : NSObject{
    static int Laa;
}

@end

Foo.m

@implementation Foo
    ...
@end

选项B

foo.h中

@interface Foo : NSObject{
}

@end

Foo.m

static int Laa; // <-- Outside of the implementation

@implementation Foo
    ...
@end

选项C

foo.h中

@interface Foo : NSObject{
}

@end

Foo.m

int Laa; // <-- Note no word 'static' here like in 'Option B'

@implementation Foo
    ...
@end

选项D

foo.h中

static int Laa;

@interface Foo : NSObject{
}

@end

Foo.m

@implementation Foo
    ...
@end

选项E

foo.h中

@interface Foo : NSObject{
}

@end

Foo.m

@implementation Foo

    static int Laa;

    ...

@end

奖金问题…

你必须使用这个词extern吗,还是只有当你使用.c / .c文件,而不是.m / .mm文件

解决方法

选项A是错误的. Objective -c类没有静态varibale. 选项B和E是实现静态变量的正确方法. 选项C创建一个可能使用extern关键字访问执行文件全局变量. 选项D再次创建一个全局静态变量,只需导入.h文件即可从任何地方访问. 关于你的奖金问题:extern关键字与C/C++中的含义相同.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...