0
我見過很多答案,只是在.m文件使用.h文件中extern int const Something
和int const Something = 1
來定義常量。類常量沒有命名衝突
但問題是 - 這些不是類常量,我不能使用它們。符號或使用其他機制來區分擁有的類。
例如,
ClassA.h
extern int const SomeErrorCode;
ClassB.h
extern int const SomeErrorCode;
,然後我有ClassC.m,我想同時使用ClassA和ClassB的,並檢查他們的方法的錯誤代碼:
#import <ClassA.h>
#import <ClassB.h>
@implementation ClassC
-(void)doIt
{
ClassA * objA = [[ClassA alloc] init];
ClassB * objB = [[ClassB alloc] init];
int resultA = [objA doSomething];
// how do I check for resultA == ClassA.SomeErrorCode ?
int resultB = [objB doSomething];
// how do I check for resultB == ClassB.SomeErrorCode ?
}
@end
如何確保我可以使用這兩個類,並且在ClassA.SomeErrorCode和ClassB.SomeErrorCode沒有衝突的情況下它們具有不同的值?
當我使用'extern',我使用前綴(比如當我創建類做),並給予他們的名字鏈接到它們被定義的類,並使用「K」,如果是常量,而不是如他們是靜態的。像'extern int const kAFMyClassAErrorCode' – Larme
你有沒有想過爲什麼它們是常量名爲'UITextFieldTextDidChangeNotification'而不是'TextDidChange'? – Sulthan
是的,這讓我覺得「yack,Objective-C很混亂」。如果沒有其他清潔選項,我想我必須習慣它。 – JustAMartin