Core Foundation で記述された手続き型フレームワークのオブジェクト指向ラッパーである Cocoa フレームワークを作成しようとしています。手続き型フレームワークには、すべて として定義されている多くの定数がありますextern CFStringRef constantName
。
手続き型定数に直接マップする NSString 定数を作成して、フレームワーク内で NSString 定数をフレームワーク内の CFStringRef 定数に単純にキャストできるようにするにはどうすればよいですか。これにより、フレームワークを使用する開発者はキャスト自体を認識する必要がなくなります。
私が試したすべてのことは、コンパイラエラーになりますInitializer element is not constant
。これは私が使いたいパターンです:
定数.h:
extern NSString * myConstant
定数.m:
#import "Constants.h"
NSString *myConstant = ConstantFromCFStringRef;
Constants.m で NSString を使用して定数値を正常に宣言していますが、この場合、無視できない s とNSString *aConstant = @"someStringLiteral"
同じ値が必要です。CFStringRef