2013-06-24 6 views
0

Я использую пример MapBox, и я импортировал свой файл mbtiles. Я получаю эту ошибку:Mapbox show Исключение и прекращение использования mbtiles в ios

MB Example[8517:c07] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSURL initFileURLWithPath:]: nil string parameter'

Я не проверил мой mbtile файла и его загрузку на й-коде, так что никаких проблем с ним.

+0

попробуйте следующее: http://stackoverflow.com/a/20531295/2245407 – Dmytro

ответ

0

Причиной аварии является ясность из вашего вопроса. Причина: [NSURL initFileURLWithPath:]: параметр nil string. Вы инициализируете NSURL, не передавая параметр nil. Поиск initFileURLWithPath и проверить погоду параметр равен нулю или не

[NSURL initFileURLWithPath:] // Pass a valid path here 
+0

но я не имеют ни одной строки кода, которая инициализирует nsurl .... – user2515470

+0

RMMBTilesSource * offlinesource = [[RMMBTilesSource alloc] initWithTileSetResource: @ "OSMBright" ofType: @ "mbtiles"]; это одна строка кода, которая создает исключение – user2515470

+0

может быть RMMBTilesSource, используя этот код. Нажмите cmd + shift + F в xcode, затем найдите эту строку –

0

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

Проблема в том, что вы передаете параметр nil методу initFileURLWithPath.

Возможно, отсутствует файл mbtiles. Так будет return nil, также проблема может быть в Mapbox.

Убедитесь, что вы добавили его в проект правильно.

3

RMMBTilesSource действительно использует этот код. Вы должны убедиться, что ваш файл OSMBright.mbtiles является частью цели проекта и добавляется в ваш комплект, чтобы его можно было вытащить как источник плитки. Как и любой ресурс, который вам нужно использовать в вашем приложении, недостаточно просто быть частью проекта Xcode.

0

При такой же ошибке. Вы уверены, что скопировали MapBox.bundle из .framework в свой Xcode-проект, как указано здесь: https://www.mapbox.com/mapbox-ios-sdk/

? Это исправило это для меня!

0

У меня есть аналогичная проблема. Не устанавливайте пользовательское поле класса в раскадровке или XIb ... enter image description here

Пример:

RMMapboxSource *tileSource = [[RMMapboxSource alloc] initWithMapID:@"YOUR MAP ID"]; 
RMMapView *map = [[RMMapView alloc] initWithFrame:self.view.bounds andTilesource:tileSource ]; 
[self.view addSubview:map];