在以下代码段中:
@implementation Foo
NSString* bar = @"Some text.";
...
@end
bar
是静态变量,还是某种类或实例变量?具体来说,它与执行以下操作有何不同:
static NSString* bar = @"Some text.";
@implementation Foo
...
@end
最佳答案
在第一个示例中,bar
是一个全局变量,具有对外部世界的全局链接器可见性。
在第二个示例中,bar
是一个静态变量,仅具有本地文件可见性(即该符号在当前编译单元之外不可见)。
对于这两个示例,它们相对于 Objective-C 关键字 @implementation
的定位是无关的。它们与 Objective-C 类完全无关,并且无论在 @implementation
范围内还是之外,操作都是相同的。
关于objective-c - 在 Objective-c 的实现中放置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12342514/