Я пытаюсь создать Cocoa Framework, который представляет собой объектно-ориентированную оболочку процедурной структуры, написанной в Core Foundation. Процедурная структура имеет ряд констант, которые определены как extern CFStringRef constantName
.
Как мне создать константы NSString, которые напрямую сопоставляются с процедурными константами, чтобы в моей среде я мог просто преобразовать константу NSString в константу CFStringRef в пределах структуры, чтобы разработчику, использующему мою структуру, не нужно было знать о приведениях себя.
Все, что я пробовал, приводит к ошибке компилятора Initializer element is not constant
. Это шаблон, который я хотел бы использовать:
Константы.ч:
extern NSString * myConstant
Константы.м:
#import "Constants.h"
NSString *myConstant = ConstantFromCFStringRef;
Я успешно объявляю постоянные значения с помощью NSString в Constants.m, используя NSString *aConstant = @"someStringLiteral"
, но в этом случае я хочу иметь то же значение, что и CFStringRef
, которое я не могу игнорировать.