Создать константу NSString из константы CFStringRef - PullRequest
1 голос
/ 22 декабря 2009

Я пытаюсь создать Cocoa Framework, который представляет собой объектно-ориентированную оболочку вокруг процедурной структуры, написанной в Core Foundation. Процедурная структура имеет ряд констант, которые все определены как extern CFStringRef constantName.

Как мне создать константы NSString, которые напрямую отображаются на процедурные константы, чтобы в моей структуре я мог просто привести константу NSString к константе CFStringRef в рамках такой среды, чтобы разработчику, использующему мою среду, не нужно было знать бросает себя.

Все, что я пробовал, приводит к ошибке компилятора Initializer element is not constant. Это шаблон, который я хотел бы использовать:

Constants.h:

extern NSString * myConstant

Constants.m:

#import "Constants.h"
NSString *myConstant = ConstantFromCFStringRef;

Я успешно объявляю значения констант с помощью NSString в Constants.m, используя NSString *aConstant = @"someStringLiteral", но в этом случае я хочу иметь то же значение, что и CFStringRef s, которые я не могу игнорировать.

1 Ответ

0 голосов
/ 22 декабря 2009

Вы пробовали:

NSString * myconstant = (NSString *)constantName;

Вы можете найти тот же ответ здесь: Как конвертировать CFStringRef в NSString? и там: CocoaDev: CFStringRef .

Действительно, Apple уже решила вашу проблему. Это называется Toll Free Bridging .

...