Как получить путь к файлу в приложении iPhone

У меня проблема с доступом к моим файлам в моем приложении.

В настоящее время я использую

//Directly from TileMap example from WWDC2010
NSString *tileDirectory = [[[NSBundle mainBundle] resourcePath] 
                           stringByAppendingPathComponent:@"Tiles"];

для доступа к моим плиткам для моего MKOverlay . Это дает мне этот каталог

/ Users / xxxx / Library / Application Support / iPhone Simulator / 4.2 / Applications / 9D62025C-C53B-472C-8309-xxxx / xxxx.app / Tiles

Знак «x» используется только из соображений конфиденциальности.

Мои плитки находятся в папке под названием Tiles в корне моего приложения, которое находится в Xcode в группе под названием Tiles , которая находится непосредственно в Resources group.

Когда я запускаю свое приложение, я получаю простую ошибку о том, что оно не может найти мои плитки в сгенерированном каталоге (одна цитата выше). Если я заменю этот фрагмент кода и сделаю это:

NSString *tileDirectory = @"/Users/xxxx/Documents/xxxx/Tiles";

Тогда мое приложение работает нормально. Очевидно, это потому, что он находит мои плитки прямо на моем Mac. Это нормально для тестирования, но мне нужно, чтобы он работал на моем iPhone / iPad.

Эта проблема может возникать из-за:

  • Сгенерированный каталог неверен.
  • Изображения плиток не включаются в встроенный файл .app .

В любом случае, я понятия не имею, что делать, чтобы решить эту проблему.

Как я могу решить эту проблему?


[РЕДАКТИРОВАТЬ]

Я изменил этот фрагмент кода на:

NSString *tileDirectory = [[NSBundle mainBundle] resourcePath];

Теперь он работает в симуляторе, потому что все файлы находятся в корневой папке приложения, и я не прошу его вводить другой каталог. называется "Плитки".

Это выполняется без ошибок в симуляторе, но на моем iPhone выдает исходную ошибку (просто другой путь к файлу, но также заканчивается на /xxxx.app

Как я могу убедитесь, что в моем файле приложения есть каталог, например xxxx.app/Tiles - TileMap делает это.

38
задан LouwHopley 17 June 2011 в 15:46
поделиться