DejalActivityView y errores de visualización de indicadores

Estoy tratando de integrar la vista del indicador dejalactivityview en mi aplicación, y me encuentro con este error:

Undefined symbols for architecture i386:
   "_OBJC_CLASS_$_DejalActivityView", referenced from:
  objc-class-ref in WelcomeMessage.o
ld: symbol(s) not found for architecture i386
 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Esta biblioteca es bastante fácil de integrar y estoy bastante seguro de que hice todo correctamente: agregué los archivos .m y .h, mi proyecto está habilitado para ARC y así es como llamo al método:

[DejalActivityView activityViewForView:self.view];

Bastante simple, ¿no? Todavía no funciona... ¡gracias por la ayuda!

ACTUALIZACIÓN:

Intenté esto:

 DejalActivityView *testvc;
[testvc activityViewForView:self.view];

Pero recibo un error (antes de compilar) de que "no hay una @interfaz visible para "DejalActivityView" declara el selector 'activityViewForView:self.view'"

enter image description here

preguntado el 03 de mayo de 12 a las 14:05

¿Qué significa eso? por cierto, sucede en algunos proyectos míos -

4 Respuestas

OK, tengo lo mismo justo ahora. Parece que si simplemente arrastra los archivos .m y .h a su proyecto, el archivo .m no se agregará como fuente para vincular a su proyecto, de ahí los errores de enlace. Lo que resolvió esto para mí fue agregar el archivo fuente DejalActivityView.m en la sección "Compilar fuentes" en "Fases de compilación" del objetivo del proyecto. En otras palabras, vaya al Navegador de proyectos y haga clic en el elemento superior, luego seleccione la pestaña "Fases de compilación" y luego agregue el archivo .m a la sección "Fuentes de compilación". Cree y ejecute su proyecto nuevamente, ¡y esta vez no debería tener los errores del enlazador!

Respondido 12 ago 12, 07:08

¿Cuál es tu nombre de clase? asegúrese de escribir correctamente si nuevamente no funciona, luego cambie el nombre de la clase. cz algunas veces que el nombre de su clase coincide con algún nombre incorporado o algún nombre de método en el proyecto que ya está en uso

contestado el 03 de mayo de 12 a las 15:05

a que clase te refieres es solo un controlador de vista (WelcomeMessage.m) donde llamo a esta línea en algún método. - moshikafia

DejalActivityView intenta cambiar el nombre de esta clase - Saad

¿a qué? lo siento, soy realmente nuevo en iOS SDK, y no estoy seguro de lo que quieres decir...:/ si pudieras proporcionar algún ejemplo de código, te lo agradecería mucho :) - moshikafia

el ejemplo de código es este, por ejemplo, tiene un atributo para nombrar schoolData y lo sintetiza, el compilador generará setSchoolData y getSchoolData pero no se nos mostrará. Ahora, si agrega una nueva clase llamada GetSchoolData, generará un error como este. Eso es lo que te pido que cambies su nombre. ese puede ser que algún nombre generado por el compilador ya esté reservado para este nombre. ¿Entendido? - Saad

QuartzCore/QuartzCore.h agregue esto a su clase después de agregar el framework quartzCore - Saad

Compruebe si realmente ha copiado los archivos .m y .h o si simplemente los está referenciando. Es posible que el compilador no pueda compilar estos archivos si no los ha copiado en la carpeta de su proyecto.

contestado el 03 de mayo de 12 a las 15:05

definitivamente están ahí... También los #incluyo, por lo que definitivamente están ahí y hay errores antes de la compilación. - moshikafia

revisa esto para

"no visible @interface for "DejalActivityView" declares selector 'activityViewForView:self.view'"

reply:- No se necesita una propiedad para DejalActivityView

por favor importe este archivo en su controlador de vista .m

#import "DejalActivityView.h"

y escribe este código en viewdidload y verifica

[DejalActivityView activityViewForView:self.view];

si tiene algún error después de eso, implemente la descarga esto de este enlace e implemento, uso y trabajo mi código

contestado el 03 de mayo de 12 a las 16:05

ahora recibo un error de "tipo desconocido" cuando hago esto: DejalActivityView *temp; en el archivo de cabecera. - moshikafia

Hice exactamente lo que hiciste, pero sigo recibiendo el error del compilador que mencioné anteriormente... ¿podrías brindarme alguna otra ayuda? alguna aplicación de muestra que pueda echar un vistazo? Lo descargué de tu enlace pero no ayuda mucho... - moshikafia

no es necesario este DejalActivityView *temp; por favor dirija implementar [DejalActivityView activityViewForView:self.view]; - Profundo

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.