2014-11-04 3 views
2

Что я сделалне удается получить доступ к пакет ресурсов из пользовательской базы с использованием CoreFoundation

Я построил пользовательские рамки IOS мы будем называть CustomFramework.framework, а также сопутствующий пакет ресурсов для некоторые файлы sqlite под названием CustomFramework.bundle. Я добавил свой фреймворк и ресурс в другой проект, и он успешно работает.

То, что я пытаюсь сделать

Я пытаюсь получить доступ к пакет ресурсов с использованием CoreFoundation. Затем я хочу выбрать конкретный файл sqlite и открыть его.

Что происходит неправильно

Существует файл в моей структуры под названием ResourceHelper.cpp. Здесь я хочу открыть файлы sqlite. Я пытаюсь получить ссылку на комплект CustomFramework.bundle. Для этого у меня есть эта строка:

CFBundleRef mainBundle = CFBundleGetBundleWithIdentifier(CFSTR("com.mycompany.CustomFramework")); 

и в моем CustomFramework-Info.plist в Bundle identifer поле является com.mycompany.CustomFramework. Эта строка кода возвращается NULL; в отладчике это выглядит как mainBundle = (CFBundleRef) 0x0.

Почему я не могу найти свой ресурс ресурсов инфраструктуры?

Благодаря

ответ

1

Что в конечном итоге работает был я должен был просто добавьте имя пакета к основному пути пучка. Вот как это сработало.

std::string dbName = "database"; 
std::string resourcePath = "CustomFramework.bundle/"; 

CFBundleRef mainBundle = CFBundleGetMainBundle(); 
CFStringRef cf_dbName = CFStringCreateWithCString(NULL, dbName.c_str(), kCFStringEncodingUTF8); 
CFStringRef cf_path = CFStringCreateWithCString(NULL, resourcePath.c_str(), kCFStringEncodingUTF8); 

CFURLRef url = CFBundleCopyResourceURL(mainBundle, cf_dbName, CFSTR("sqlite"), cf_path); 

 Смежные вопросы

  • Нет связанных вопросов^_^