2011-01-22 9 views
8

recibo una advertencia del compilador en el -renderInContext:¿Por qué aparece la advertencia 'No -renderInContext: method found'?

- (UIImage *) imageFromView:(UIView *)view { 
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0); 
    [view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage * img = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext(); 
    return img; 
} 

tengo QuartzCore en los marcos de proyectos, y funciona el código. ¿Cómo arreglo el código para que deje de darme la advertencia?

La advertencia exacta que se ve es

warning: no '-renderInContext:' method found 
warning: (Messages without a matching method signature 
warning: will be assumed to return 'id' and accept 
warning: '...' as arguments.) 

Respuesta

33

Intente importar el marco de Quartz en su aplicación.

A continuación, añadir,

#include <QuartzCore/QuartzCore.h>

a su aplicación.

+0

Gracias, eso fue todo. (¿Cómo extrañé eso .....) – P5ycH0

+0

genial, está funcionando, gracias – ios

+0

¿Hay alguna otra manera? – Dmitry

2

supongo que es debido al hecho de que la cabecera CALayer clase está en el marco QuartzCore.

En Xcode, en el grupo de Frameworks, agregue el framework QuartzCore y todo estará bien.

Luego, vea my post here on SO para saber cómo incluir los archivos de encabezado en cada archivo fuente. Ahora no es para Core Data, sino para QuartzCore (de la misma manera)

2

¿Tiene QuartzCore.framework en su proyecto?

Cuestiones relacionadas