我不太理解在接口实现中定义的静态变量.在方法中,我确实理解它们与局部变量的区别,但在直接在实现中定义时却不理解.

看看这些例子.这两者实际上有什么区别?

#include "MyClass.h"

@implementation MyClass
int myInt;
...
@end

以及:

#include "MyClass.h"

@implementation MyClass
static int myInt;
...
@end

myInt在这两种情况下对所有方法都是可见的,如果我正确解释了我运行的测试,myInt在这两种情况下对于类的不同实例将是相同的变量.

推荐答案

该上下文中的"static"关键字与普通C中的相同:它将myInt的范围限制为当前文件.

Objective-c相关问答推荐

XCTAssertEqual 错误:(3)不等于(3)

是否可以将 NSInteger 转换为 NSNumber?

如果用户点击屏幕键盘,我如何关闭键盘?

在可可中的字符串上使用 MD5 哈希?

ARC的正确桥接?

iOS 指定初始化器:使用 NS_DESIGNATED_INITIALIZER

iOS 编译错误:CDVCommandDelegateImpl没有可见的@interface 声明 Select 器执行:

如何在 iOS 中拨打电话?

从我在 iPhone 上的应用程序调用官方 *Settings* 应用程序

arc4random 和 arc4random_uniform 有什么区别?

从昨天开始无法将存档上传到应用store

iOS 8 Mapkit Objc 无法获取用户位置

显示启动画面的时间超过默认秒数

如何查看 NSError?

UICollectionView 仅在用户双击时调用 didSelectItemAtIndexPath,当用户单击时不会调用

如何在 Objective-C 中添加具有自己的 UIViewController 的子视图?

BOOL到 NSString

iPhone SDK:如何在视图中播放视频?而不是全屏

重复符号问题

如何使用图像和标签制作自定义 UIBarButtonItem?