Встроенные ресурсы в Цель C? - PullRequest
3 голосов
/ 03 августа 2010

У меня есть библиотека на C # и Java, которая использует некоторые XML-файлы для генерации большого количества объектов. Я использую их, поэтому мне не нужно жестко кодировать их на обоих языках, и я могу легко обновить данные.

В C # и Java я могу встраивать эти файлы в DLL / Package.

Как мне поступить, чтобы сделать что-то подобное в Objective-C?

1 Ответ

6 голосов
/ 03 августа 2010

Это не вопрос уровня языка, это вопрос уровня упаковки платформы. Как на Mac OS X, так и на iOS обычно вы добавляете файл ресурсов в свой проект, а затем получаете путь к файлу из NSBundle:

NSString *path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"xml"];

Библиотеки в Objective-C называются фреймворками. Как и приложения, они также являются пакетами в Mac OS X и вместо mainBundle вы, вероятно, захотите использовать bundleForClass:.

iOS не поддерживает фреймворки, только статические библиотеки, поэтому вы не сможете включать файлы ресурсов в свою библиотеку на этой платформе. Они должны быть добавлены непосредственно в проект.

...