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. iPhone:目標C全局變量
- 4. 在目標中全局變量實例變量c
- 5. C#中的全局變量
- 6. C++中的全局變量
- 7. C中的全局變量#
- 8. c中的全局變量
- 9. C++全局變量
- 10. 全局變量,C
- 11. C#全局變量
- 12. C++:全局變量
- 13. 在目標C++中聲明全局變量時出錯?
- 14. 如何在目標C中聲明全局變量
- 15. 如何在目標c中定義一個全局變量?
- 16. dlopen和C/C++中的全局變量
- 17. 目標C從另一個文件訪問的全局變量
- 18. 如何使一個變量可用於全局目標c
- 19. Accesing全局變量給出鏈接錯誤目標C
- 20. 如果全局變量不是 - 目標C
- 21. 定義數組作爲全局變量在目標c
- 22. 問題聲明目標C全局變量
- 23. 全局標題變量
- 24. 全局變量覆寫C#
- 25. ASP.NET MVC C#全局變量
- 26. Objective-C和全局變量
- 27. PAWN到C++全局變量
- 28. C# - Winforms - 全局變量
- 29. NASM X86_64全局變量C
- 30. psuedo全局變量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