2012-06-12 1 views
0

iOS MapBox SDK의 사용자 위치 그래픽 애셋을 기본 프로젝트에서 수동으로 가져와야합니까? 나는 사용자의 위치를 ​​표시하려고하면, 나는이 오류가있어필요한 사용자 위치 그래픽 애셋 (MapBox)을 찾을 수 없습니다.

(iOS6의에 아이폰 4S에 내장이 - 동일한 오류가 시뮬레이터 iOS에서 기록됩니다 5.1)

if (!self.mapView.isUserLocationVisible) { 
    self.mapView.showsUserLocation = YES; 
} 

기록 정확한 오류는 다음과 같습니다

[RMUserLocation initWithMapView : 좌표 andTitle :]를 /Users/franco/Apps/XXXX/Application/XXXX/Vendors/mapbox-ios-sdk/MapView/Map/RMUserLocation.m:24 2012-06-13 01 : 41 : 52.426 XXXX [2058 : 907] * 캐치되지 않은 예외로 인해 앱 종료 'NSIn ternalInconsistencyException ', 이유 :'필요한 사용자 위치 그래픽 애셋을 찾을 수 없습니다. (MapView/Map/Resources에서 복사) '

감사합니다.

답변

0

발견 된 해결책은 입니다. 자산 파일을 MapView/Map/Resources에서 내 루트 프로젝트으로 추가 (복사)합니다.

헤더 검색 경로 ($ (SRCROOT)/IntraMuros/Vendors/mapbox-ios-sdk)로 설정하면 이러한 애셋을 사용할 수 있다고 생각했습니다.

아마도 이것을 수행하는 더 깨끗한 방법이있을 것입니다.

자산 파일은 MapView 하위 프로젝트에서 사용할 수 있습니다.

+0

루트 프로젝트에서 애셋을 가져 오지 않고도이 문제에 대한 실질적인 해결책을 찾을 수 있도록하겠습니다. 이 대답을 수락합니다. – rayfranco

1

저는 SDK의 개발자입니다. SDK는 정적 라이브러리로 빌드되며 그래픽 자산을 포함 할 수 없으므로 더 쉬운 솔루션은 없습니다. 할 수있는 한 가지 방법은 애셋을 참조하기 만하면됩니다. 반드시 애셋을 프로젝트에 복사하지 않고 SDK와 함께 제공되는 실제 파일을 사용하십시오. 하지만 dev32가 사용자 위치가 왜 나타나지 않는지를 알지 못하는 상황을 피하기 위해 NSAssert()을 넣었습니다.

Apple의 MapKit과 마찬가지로 isUserLocationVisible 속성은 위치가 표시되는지 테스트하는 것이 아니라 현재 화면에 표시되는 것입니다. 따라서 showsUserLocation을 설정하여 showsUserLocation을 설정할지 여부를 결정해야합니다.

관련 문제