2
A
回答
1
alJaree嗨,
您声明静态变量在您的类的实现,并通过静态访问允许访问它:
some_class.h:
@interface SomeClass {...}
+ (int)counter;
@end
some_class.m:
@implementation SomeClass
static int counter;
+ (int)counter { return counter; }
@end
2
而不是使其全球,给一个类访问其他类的柜台,或有两类共享拥有该计数器第三类:
ClassA.h:
@interface ClassA {
int counter;
}
@property (nonatomic, readonly) int counter;
ClassA.m
@implementation ClassA
@synthesize counter;
ClassB.h:
#import "ClassA.h"
@interface ClassB {
ClassA *a;
}
ClassB.m:
@implementation ClassB
- (void)foo {
int c = a.counter;
}
相关问题
- 1. c目标c中的全局变量
- 2. 在目标中全局变量实例变量c
- 3. C#中的全局变量
- 4. C中的全局变量#
- 5. 全局变量,C
- 6. C#全局变量
- 7. 在目标C++中声明全局变量时出错?
- 8. dlopen和C/C++中的全局变量
- 9. 全局标题变量
- 10. 问题声明目标C全局变量
- 11. NASM X86_64全局变量C
- 12. C++构建全局变量
- 13. C++和全局变量
- 14. Objective-C和全局变量
- 15. objective-c - 全局变量
- 16. C# - Winforms - 全局变量
- 17. 全局变量类C++
- 18. c#改变全局光标
- 19. C++中的全局动态Allcoated变量
- 20. visual C++中的全局变量
- 21. C#中的全局变量替代?
- 22. Visual C中的全局变量#
- 23. C#MVC4中的全局JavaScript变量
- 24. c - pthreads中的全局变量
- 25. Obj-C中的静态全局变量?
- 26. Visual C#中的“全局变量”#
- 27. 全局变量v C#中的设置
- 28. 变量与不完全型目标C
- 29. lotusscript中的全局变量如何全局变量IBM Notes 9
- 30. 共享库项目中的全局变量问题(C++)
谢谢,但我如何在另一课中使用它?我只是收到“未声明”的错误。 – jarryd 2010-06-29 11:32:44
你必须'#import“some_class.h”'到每个使用计数器的实现文件中。 – Paul 2010-06-29 12:57:31
@alJaree这或多或少是java中具有公共静态成员的类的“等价物”。正如Paul所说的,你必须导入它,然后通过[SomeClass counter]访问它。另一种方法是在头文件中声明一个全局变量(就像c中的那样),但Marcelo已经建议使用这种方法,我认为从OO的角度来看它更清晰。 – 2010-06-29 15:02:42