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