0
.hファイルにはextern int const Something
、.mファイルにはint const Something = 1
を使用するだけで定数を定義することができます。名前の衝突のないクラス定数
しかし問題は - これらはクラス定数ではなく、私はそれらを使用できません。または他のメカニズムを使用して所有クラスを区別することができます。
例えば、
ClassA.h
extern int const SomeErrorCode;
ClassB.h
extern int const SomeErrorCode;
と私はにClassAとClassBの両方を使用して自分のを確認したい場所を、私はClassC.mを持っていますメソッドエラーコード:
#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'を使うときに接頭辞(クラスを作成するときのように)を使い、定義されているクラスにそれらをリンクする名前を与え、constならば" k "を使います。彼らは静的です。 'extern int const kAFMyClassAErrorCode'のように – Larme
なぜあなたは' TextDidChange'ではなく 'UITextFieldTextDidChangeNotification'という名前の定数であるのか疑問に思いましたか? – Sulthan
はい、これは私に "やって、Objective-Cは面倒です"と思いました。私は他のクリーナーオプションがないなら、それに慣れなければならないと思う。 – JustAMartin