2012-08-04 6 views
5

después de actualizar mi máquina de programación para MountainLion y XCode a la nueva versión consigo esta advertencia impresa en el cada consola ejecuto mi aplicación:"no tiene sentido para dibujar una imagen" - Advertencia después de la actualización a MountainLion

No tiene sentido dibujar una imagen cuando [NSGraphicsContext currentContext] es nulo. Esto es un error de programación. Romper en el vacío _NSWarnForDrawingImageWithNoCurrentContext() para depurar. Esto se registrará solo una vez. Esto puede romperse en el futuro.

No estoy usando una imagen en ninguna parte de mi aplicación y busqué en todo el proyecto una imagen pero no pude encontrar una. ¿Alguien sabe lo que podría causar esto?

Estoy usando 2 archivos de punta por cierto: One Popover y Mainwindow. Ninguno de ellos contiene una imagen.

Editar: me encontré con la línea cuando esta aparece:

[self.popover showRelativeToRect:[appDelegate.menulet frame] 
           ofView:appDelegate.menulet 
         preferredEdge:NSMinYEdge]; 

Pero ninguno de los objetos es nula. ¿Alguna sugerencia?

Editar 2: El menú es una subclase NSView por cierto. Así que estoy pasando una vista.

+0

¿Estableciste el punto de interrupción donde se decía? Publique la traza de pila cuando se golpea el punto de interrupción. –

+0

¿Cómo puedo averiguarlo? No me muestra la señal de advertencia amarilla, acabo de recibir este mensaje. Hay una fecha y mi nombre de aplicación seguido de "[6686: 303]". Revisé cada clase en la línea 303, pero no pude encontrar nada. –

+2

Leer [Acerca de Breakpoint Navigator] (http://developer.apple.com/library/mac/#recipes/xcode_help-breakpoint_navigator/articles/about_breakpoint_navigator.html#//apple_ref/doc/uid/TP40010433-CH6-SW1) y [Agregar un punto de interrupción simbólico] (http://developer.apple.com/library/mac/#recipes/xcode_help-breakpoint_navigator/articles/adding_a_symbolic_breakpoint.html).Coloque '_NSWarnForDrawingImageWithNoCurrentContext' en el campo Símbolo y deje el campo Módulo en blanco. –

Respuesta

0

En mi caso, la advertencia resultó en la reescritura de mi menuIcon con un rectángulo (Trabajando en una aplicación de barra de menú). Todavía no he resuelto el problema, pero sé de dónde vino en mi caso. Si tiene una aplicación de barra de menú, verifique el código que genera su ícono.

1

Intenté configurar el punto de interrupción pero se invoca cuando se carga el plumín. Entonces es muy inespecífico. Creé una copia de la punta y luego borré los objetos uno por uno hasta que la advertencia desapareció. En mi caso, era un NSOutlineView. Pero tan pronto como agregué un nuevo NSOutlineView, el error volvió.

Finalmente pude eliminar la advertencia reconstruyendo todo el NIB a mano. Descansa pero se deshizo de la advertencia.

+0

¡Lo intentaré más tarde! –

+0

En realidad, la recreación del archivo NIB lo solucionó. –

1

Si tiene un NSImageView que se inicializó en el plumín pero sin una imagen (y dibuja la imagen usted mismo en el código) simplemente ajústelo y la advertencia desaparecerá.

+1

No tengo un NSImageView. Eso es lo que tengo tanta curiosidad sobre ... –

+1

Pero tuve un NSImageView que se inicializó en la punta, pero sin imagen configurada. Quitarlo eliminó el error. Muchas gracias. –

1

En mi caso, es porque el tamaño de la imagen es {0,0}, lo que "no tiene sentido". En realidad, la imagen es para NSButton, cambio la imagen del botón mediante programación. En un caso, el botón debe estar vacío, por lo que simplemente configuro una imagen vacía con [NSImage new]. Pero el error ocurre, entonces no importa cómo cambio la imagen del botón, el botón siempre está vacío. Después de establecer un tamaño para la imagen vacía, el problema está resuelto y puedo cambiar la imagen del botón correctamente.

Cuestiones relacionadas