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