2011-11-21 23 views
5

Por supuesto, busqué en Google y usé la búsqueda en stackoverflow. he encontrado algunas discusiones similares:Obtengo: Aplicación de finalización debido a una excepción no detectada 'NSInvalidUnarchiveOperationException', razón: 'No se pudo crear una instancia de clase llamada MKMapView'

Could not instantiate class named MKMapView

http://forums.bignerdranch.com/viewtopic.php?f=49&t=490

NSInvalidUnarchiveOperationException: cannot decode object of class (UITableViewCellContentView)

... y un montón de copias de ese :)

Sin embargo, no estoy utilizando el SDK 3.2, pero 5.0 (uno de los debates vinculados sugiere que fue un error en alguna versión beta de SDK 3.2).

Las otras discusiones y respuestas sugieren que el marco MapKit no se incluyó correctamente. Traté de incluirlo de varias maneras, siguiendo esas instrucciones.

Todavía recibo este error. Se thown en

[super loadView]; 

dentro método

- (void)loadView { 

mi propio punto de vista del controlador. La vista en sí misma está construida dentro de IB. Al lado de otros artículos tiene una MKMapView.

Estoy utilizando MKMapView en dos de mis proyectos de xcode. Ambos se iniciaron en xcode 3.2 y ahora se migraron a xcode 4. Dentro de uno de los proyectos, el código funciona bien y en el otro, obtengo este error de tiempo de ejecución. No identifiqué ninguna diferencia significativa entre las configuraciones de estos proyectos que pudieran explicar este comportamiento diferente para mí.

Una solución actual es quitar cualquier código (y elemento IB) relacionado con una Vista de mapa. Pero al final prefiero incluir esa vista de mapa porque sirve un propósito :)

Cualquier sugerencia es apreciada.

Hermann

+2

¿MapKit forma parte de los Frameworks incluidos? – Till

+1

mapkit framework no está incluido por defecto cuando crea un nuevo proyecto – aeoliant

+0

Gracias a ustedes dos. Sí, MapKit.framework ist incluido. Hay varias formas de incluirlo y probé todo lo que sé. –

Respuesta

8

Ir a la configuración de destino - no a nivel de proyecto, pero a nivel de objetivo. Haga clic en Fases de compilación, luego expanda Enlace binario con bibliotecas. Asegúrese de que MapKit.framework aparezca en la lista y añádalo si no.

+0

Gracias. Sí, se incluyó para todos los objetivos. Sea lo que sea, finalmente comencé un nuevo proyecto xcode desde cero, copié todos los archivos fuente y configuré todos los archivos de configuración desde cero (solo para guardar) e incluí todos los marcos requeridos. Eventualmente eso funcionó. Al hacerlo, aproveché la oportunidad y convertí mi proyecto de ARC, que valió la pena. –

+0

Esta respuesta funcionó para mí. Ojalá Hermann lo acepte. –

+0

Francamente, la respuesta no funcionó para mí en ese momento. Por lo tanto, no puedo aceptarlo. Sin embargo, me alegro de que ayuda a otros que tienen un problema similar y encuentran mi pregunta. En mi caso, todavía asumo que algo salió mal en la migración del proyecto. Tuve que reiniciar el proyecto desde cero (por otras razones) y copiar todos los soucres en el nuevo proyecto. Al hacerlo, este problema también se resolvió. –

0

El uso de Xcode 7.2 add Framework se puede hacer de 3 maneras.

1. Bajo Objetivos Seleccione Proyecto -> Haga clic en la ficha General -> Expandir Marcos enlazadas con bibliotecas -> Haga clic en el icono + -> Buscar MapKit -> Haga clic en Agregar.

2. Bajo Objetivos Seleccione Proyecto -> Haga clic en Capacidades -> Mapas Bajo ->Haga clic en el botón del interruptor.

3. Bajo Objetivos Seleccione Proyecto -> Haga clic en Fases Construir -> Expand marcos enlazados con bibliotecas -> Haga clic en el icono + -> Buscar MapKit -> Haga clic en Agregar.

Cuestiones relacionadas