我知道它支持自動變量,但類變量呢?Objective-C是否支持類變量?
回答
該語言不支持類變量。您可以在實現的編譯單元中使用全局變量static
實現特定於類的狀態。
在報頭(h文件):
@interface MyClass : NSObject
+(int)val;
@end
在實施(.m文件):
static int val = 123;
@implementation MyClass
+(int)val {return val;}
@end
用法:
if ([MyClass val] > 100) ...
這種語言必須銷燬) – user924
@ user924對於所有實際用途,語言已經死亡。 [你錯過了備忘錄嗎?](https://developer.apple。com/swift /) – dasblinkenlight
我知道,但我需要使用OpenCV,在這裏我們再次使用Objective-C – user924
ObjC類變量是純舊的靜態變量。
Foo.m
:
Foo.mm
:
namespace {
int foo = 0;
}
但還有另一種模式,如果你想受益
static int foo = 0;
或者,你可以,如果你使用ObjC++使用C++匿名命名空間來自物業的優勢:
Foo.h
:
@interface FooShared
@property (atomic, readwrite, strong) Foo* foo;
@end
@interface Foo
+ (FooShared*) shared;
@end
Foo.m
:
@implementation FooShared
@end
static fooShared* = nil;
@implementation Foo
+ (FooShared*) shared
{
if (fooShared == nil) fooShared = [FooShared new];
return fooShared;
}
@end
somewhere.m
:
Foo* foo …;
foo.shared.foo = …;
它可能看起來有點大材小用,但它是一個有趣的解決方案。您對實例屬性和「類」屬性使用相同的構造和語言功能。需求時的原子性,需要時的訪問器,調試,斷點...甚至是繼承。
創意思維可以找到其他方法來做到這一切我想。 :)但你幾乎覆蓋了這些選項。
@property (class, nonatomic, copy) NSString *someStringProperty;
但是你必須提供getter和setter
從Xcode的8發佈說明: 的Objective-C現在支持類屬性,這與雨燕特性互操作。它們被聲明爲:@property(class)NSString * someStringProperty ;.他們從未合成過。 (23891898)
- 1. R是否支持8位變量?
- 2. Theano是否支持變量拆分?
- 3. Go是否支持運算符類型變量?
- 4. ColdFusion是否支持常量?
- 5. Automator變量是否持久?
- 6. 支持表變量
- 7. 類變量是否可變?
- 8. 是否支持has_and_belongs_to_many上的變體?
- 9. Vim是否支持「可變選項卡」?
- 10. Imagick是否支持徑向漸變?
- 11. iOS中是否支持漸變字體?
- 12. Instagram API是否支持批量調用?
- 13. OpenJPA是否支持批量插入?
- 14. Sonarqube是否支持Xamarin代碼質量?
- 15. Anorm是否支持批量插入?
- 16. Rebus是否支持批量發送
- 17. haproxy是否有重量支持
- 18. Passbook是否支持增量更新
- 19. 是否支持groovvy
- 20. 是否支持SSI?
- 21. 是否支持DataGrid?
- 22. 是否支持MSNP9?
- 23. 是否支持ARC?
- 24. ObjectiveC中的靜態變量
- 25. Android是否支持手錶支持NFC
- 26. OData是否支持Enum類型的groupby?
- 27. Acumatica是否支持hierarchyid類型?
- 28. sscanf是否支持布爾類型?
- 29. Diesel是否支持Postgres`point`類型?
- 30. Typescript是否支持「子集類型」?
[iPhone上的Objective C中的靜態字符串變量]的可能重複(http://stackoverflow.com/questions/980083/static-string-variable-in-objective-c-on-iphone) –
http ://stackoverflow.com/questions/1063229/objective-c-static-class-level-variables –