Referencia a objeto no encontrada

Para dar las gracias debes entrar o registrarte en el foro

iMiembro
iMiembro
Mensajes: 12 Agradecido: 0
08 Jun 2014, 13:37# 1

Buenos días a todos!!

Recientemente he comenzado a desarrollar para IOS, la verdad que me esta costando más de lo que pensaba, puesto que cambian muchas cosas respecto a lo que venía haciendo (java y C#).

Me he encontrado con un problema en un primer programa que estoy siguiendo de un manual:

Tengo una clase que corresponde a una view, en el que tengo los IBOulet y además he creado una propiedad de un objeto personalizado, en este caso se trata de un "Libro"

Este es el código de la clase View:

Código: Seleccionar todo

#import
#import "Libro.h"

@interface InformationViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIImageView *imagenlibro;
@property (weak, nonatomic) IBOutlet UILabel *nombrelibro;
@property (weak, nonatomic) IBOutlet UILabel *autorlibro;
@property (weak, nonatomic) IBOutlet UILabel *editoriallibro;
@property (weak, nonatomic) IBOutlet UILabel *añolibro;
@property (weak, nonatomic) IBOutlet UITextView *sinopsislibro;

@property Libro *libroSeleccionado;

@end


El problema que tengo es que cuando intento acceder a ella desde otra clase consigo acceder a los IBOutlet pero no a la propiedad "libroSeleccionado".

Este es el código con el que intento acceder.

Código: Seleccionar todo

InformationViewController *informationViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"InformationViewController"];
   
 informationViewController.libroSeleccionado = [_libros objectAtIndex:indexPath.row];



Y el error que me da es el siguiente:

"property 'libroSeleccionado' not found on object of type InformationViewController"

El import le tengo hecho, en esta clase así que creo que me debería encontrar la propiedad no??

Espero que me podais ayudar!!

Muchas gracias.
Gracias  
Etiquetado en:
iMiembro 7G
iMiembro 7G
Mensajes: 302 Agradecido: 80
08 Jun 2014, 21:08# 2

No estoy seguro, pero el error parece que está en esta línea:

Código: Seleccionar todo

InformationViewController *informationViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"InformationViewController"];


que debería ser:
Código: Seleccionar todo

InformationViewController *informationViewController = (InformationViewController *) [self.storyboard instantiateViewControllerWithIdentifier:@"InformationViewController"];



Enviado desde mi LG-V500 mediante Tapatalk
Gracias  
iMiembro
iMiembro
Mensajes: 12 Agradecido: 0
08 Jun 2014, 21:31# 3

Buenas noches.

Muchas gracias por tu respuesta, aunque no es por eso, sigue sucediendo lo mismo.

Es que es muy raro ya que es como si no detectará que esa propiedad está declarada.

Un saludo.

Gracias  
iMiembro 7G
iMiembro 7G
Mensajes: 302 Agradecido: 80
08 Jun 2014, 23:21# 4

Entonces puede ser por cómo has declarado la property.

Prueba declarándola así:

Código: Seleccionar todo
@property (nonatomic, retain) Libro *libroSeleccionado;


Enviado desde mi LG-V500 mediante Tapatalk
Gracias  
iMiembro
iMiembro
Mensajes: 12 Agradecido: 0
08 Jun 2014, 23:37# 5

Nada lo mismo....

¿Qué significa los valores (nonatomic, retain)?

Un saludo.

Gracias  
iMiembro
iMiembro
Mensajes: 12 Agradecido: 0
08 Jun 2014, 23:42# 6

He probado a añadir otras propiedades pero no las reconoce tampoco.

Solo reconoce los IBOutlet.

Un saludo.

Gracias  
iMiembro 7G
iMiembro 7G
Mensajes: 302 Agradecido: 80
08 Jun 2014, 23:43# 7

¿Has synthetized la property en la @implementation en el .m?

Código: Seleccionar todo
@implementation InformationViewController : UIViewController

@synthetized libroSeleccionado;
.
.
.
@end


Aquí tienes una buena explicación de lo que significan los modificadores de property.

Enviado desde mi LG-V500 mediante Tapatalk
Gracias  
iMiembro
iMiembro
Mensajes: 12 Agradecido: 0
09 Jun 2014, 00:16# 8

No tenía declarada la sintetización aunque sigue fallando, y sigue sin reconocerse la propiedad.

Un saludo.

Gracias  
iMiembro 7G
iMiembro 7G
Mensajes: 302 Agradecido: 80
09 Jun 2014, 00:25# 9

Prueba a limpiar la solución con CMD + Shift + K o proyecto->limpiar y vuelve a generar.

Enviado desde mi LG-V500 mediante Tapatalk

Gracias  
1 persona ha dado las gracias: truxky
iMiembro
iMiembro
Mensajes: 12 Agradecido: 0
09 Jun 2014, 00:56# 10

Buenas noches.

Ya he conseguido solucionarlo, resulta que debía haber tenido unos archivos con los mismos nombres y creía que los había eliminado, pero resulta que solo había borrado la referencia en el proyecto, de este modo los archivos seguían dentro de la carpeta y en alguno de esos archivos era donde estaba buscando la referencia a la propiedad.

Bueno esto, ha servido para aprender más cosas de las propiedades en IOS.

Muchas gracias por tu ayuda davdi.

Un saludo.

Gracias  

Publicidad
Publicidad