objective-c - 在 Objective-c 的实现中放置变量

标签 objective-c cocoa static

在以下代码段中:

@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/

相关文章:

objective-c - 如何在运行时确定 NSManagedObject 的子类是否具有特定属性

objective-c - iOS - 构建失败,CocoaPods 找不到头文件

java - 在子类中执行 Java 静态 block

iphone - 界面构建器设置者?请打我吧!

objective-c - 使用 mailcore2 从 IMAP 帐户详细信息中获取完整的电子邮件地址

c - 在函数内部时如何不重新分配静态变量

java - 为什么单例设计模式中对象的访问器方法必须是“静态的”?

ios - 我想每秒调用 20 次 installTapOnBus :bufferSize:format:block:

iphone - 从 View 中显示新 View 然后在 iphone 中返回到它的正确方法是什么

ios - 如何在 Objective-C 中找到路由器 IP 地址?