MKMapView라는 클래스를 인스턴스화 할 수 없습니다.


165

내가 전에 한 것처럼 여기에서 정말 어리석은 짓을하고있을 수 있습니다.

세부 사항보기에서 MKMapView를 추가하고 MapKit.framework를 프로젝트에 추가하고 / 등을 헤더에 추가 한 새 iPad 프로젝트를 작성했습니다. 프로젝트를 실행하고 SIGABRT를 얻으십시오.

**** 포착되지 않은 예외 'NSInvalidUnarchiveOperationException'으로 인해 앱을 종료하는 이유 : 'MKMapView라는 클래스를 인스턴스화 할 수 없습니다'**

http://mithin.in/2009/06/22/using-iphone-sdk-mapkit-framework-a-tutorial/을 찾았 지만 말했듯이 이미 프레임 워크를 추가했습니다. 내가 무엇을 놓치고 있습니까?

답변:


379

나도 이것에 부딪 쳤지 만, 당신의 링크에서 2 단계의 지시에 따라 그것을 지나갈 수있었습니다 (감사합니다).

  1. MapKit 프레임 워크를 프로젝트에 추가하십시오. (컨트롤 + 클릭 프레임 워크 폴더-> 추가-> 기존 프레임 워크)

방금 MapKit.framework를 검색하여 프로젝트에 추가했는데 오류가 사라졌습니다.

아직지도 코드를 추가하지 않았지만 (IB에 MapViewDelegate가 연결되어 있지만) 지금까지는 제대로 작동합니다!


도움이되어 다행입니다! 시스템 재부팅이 확실하지 필요한이었다, 그러나 :) 지금 작동 - 리셋 장치 - 클린 프로젝트 - : 나는 마침내 다음을 수행하여 작업을 얻을 않았다
TG2

1
MapKit 프레임 워크를 추가하면 나에게 도움이되었습니다. 내 코드는지도를 가져 왔고 모든 것이 잘 작동했습니다.
finneycanhelp

4
xcode 4.2 에서이 문제가 발생하면 Frameworks 폴더를 추가 한 후 Frameworks 폴더에 표시되었지만 오류가 발생했습니다. 대상을 클릭 한 다음 빌드 단계를 클릭 한 후 라이브러리와 바이너리 링크 섹션에없는 것으로 나타났습니다. frameworks 폴더에서 해당 섹션으로 드래그하면 문제가 해결되었습니다. 힌트 주셔서 감사합니다
Tim Stephenson

1
Iterface Builder에서 프로젝트에 링크되지 않은 뷰를 끌 때 경고하지 않는 것은 슬픈 일입니다.
Paul Brewczynski

30

프로젝트를 클릭하여 프로젝트 설정을 가져 오십시오. 대상 아래에서 프로젝트를 클릭하고 상단 도구 모음 "빌드 단계"에서 선택하십시오. "라이브러리와 바이너리 연결"탭 아래에 프로젝트에 포함 된 프레임 워크 목록이 표시됩니다. "+"버튼을 클릭하고 표시된 목록에서 MapKit 라이브러리를 프로젝트에 추가하십시오.


27

Xcode 6.1의 경우 :

  • 프로젝트를 선택하십시오
  • 일반 탭에서 연결된 프레임 워크 및 라이브러리를 찾으십시오. (마지막)를
  • + 버튼을 누릅니다
  • MapKit.framework 검색
  • 마지막으로 추가

17

쉬운 방법!

Xcode 버전 7.2 이상에서 작동

기능에서 MAPS를 선택하는 것과 관련하여 프레임 워크를 프로젝트에 자동으로 연결하면 Capabilities-> Maps 에서 Maps 버튼을 확인하기 만하면됩니다. .

첨부 된 스크린 샷입니다. 건배!!

여기에 이미지 설명을 입력하십시오


이것은 또한 Xcode 버전 8에서도 작동합니다. "Capabilities"에서 "Maps"를 켜면 MapKit.framework가 연결됨을 나타냅니다. "빌드 단계"로 이동하여 "바이너리와 바이너리 링크"섹션을 확장하여이를 확인할 수도 있습니다. MapKit.framework도보아야합니다.
Ryan H.

9

xCode 4.2의 경우 :

Click on your project name ->targets ->building Phase ->link binary with library 
  -> click on + sign ->select mapKit.framework ->click add

3

시뮬레이터에서 빌드하고 실행할 때이 메시지 (이 게시물에 언급 된 원본 위에)가 표시되는 것을 알았습니다.

ld : 경고 : /Users/peter/programming/iPhone/iNspector/MapKit.framework/MapKit 파일을 무시하고 파일이 지원되지 않는 파일 형식으로 작성되었으며 링크 된 아키텍처가 아닙니다 (i386)

그런 다음 방금 iPhone을 연결하고 장치를 빌드하고 실행했는데지도가 작동했습니다.

따라서 MapKit 프레임 워크는 386 아키텍처에서 컴파일 할 수 없으며 장치가 필요합니다.


3

@futureshocked의 입력과 관련하여, 나는 또한

ID : 경고 : 파일 /blah.../MapKit을 무시하고 파일이 지원되지 않는 파일 형식으로 작성되었으며 링크 된 아키텍처가 아닙니다 (i386)

발행물.

** 복사하지 않았는지 확인하십시오 MapKit 프레임 워크를 프로젝트에 추가 할 때 로컬 프로젝트 디렉토리에 프레임 워크를 . 실수 로이 작업을 수행했으며 XCode에서 위의 오류가 발생했습니다. 그래서 나는 그것을 Finder의 프로젝트 디렉토리에서 제거하고 다시 컴파일했으며 모든 것이 다시 정상적이었습니다.

프로젝트에 프레임 워크가 없으면 답변에 설명 된대로 다시 연결하십시오 .

MapKit 시작에 대한 유용한 자습서를 찾았습니다.
http://www.youtube.com/watch?v=X-3jM24EIGM&feature=related


3

또한 배포 대상을 5.1로 변경 한 후에도 5.1 전화 (XC 4.5 포함)에 배포하려고 할 때이 오류가 발생했습니다. 휴대 전화에 여전히 Google지도가있어지도 업데이트가 표시되지 않는 것 같습니다. 휴대 전화의 OS를 업데이트 한 후 예외가 사라졌습니다.


맵 정의가있는 파일 만 제거하면 충분하지 않습니까?
Konrad Viltersten

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.