He estado buscando a través de innumerables mensajes acerca de este error:.
Undefined symbols:
"_OBJC_CLASS_$_BoxView", referenced from:
objc-class-ref-to-BoxView in ViewMovingViewController.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
BoxView
es una subclase de UIView
, y el marco UIKit
se ha incluido BoxView.h
ha sido importado en el . ViewController
El ViewController contiene este código:
-(void) addBoxViewAtLocation:(CGPoint)point {
CGRect rect;
rect.origin.x = point.x;
rect.origin.y = point.y;
rect.size.width = 80;
rect.size.width = 40;
BoxView *newView = [[BoxView alloc] initWithFrame:rect];
newView.backgroundColor = [UIColor yellowColor];
[mainView addSubview:newView];
}
Y BoxView
contiene este código:
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
// no further initialization
}
return self;
}
Esta es la línea que está causando el error, el código anterior:
BoxView *newView = [[BoxView alloc] initWithFrame:rect];
Cuando cambio BoxView
a UIView
en esa línea, el error desaparece. ¿Alguien sabe lo que necesito cambiar aquí? He revisado muchas publicaciones sobre esto, pero la mayoría de las respuestas dicen que está relacionado con el enlace, pero he intentado marcar y desmarcar ciertas cajas sin éxito. Me pregunto si el error está en mi código. ¡Cualquier sugerencia sera apreciada!
Gracias, sin duda trató la generación limpia, pero no han llegado a través de una casilla de verificación para BoxView.m .. ¿Dónde podría encontrar que Tickbox? Estoy mirando a través de la configuración de compilación, pero no lo veo. Estoy trabajando con una versión anterior de X-Code, X-Code 3, así que no creo que mi versión se ajuste a la captura de pantalla que envió – cms
Oh de hecho, acabo de encontrarlo. No sé si es el caso en Xcode 4 pero en Xcode 3 puedes literalmente arrastrar y soltar el archivo .m en el destino – cms
A veces, cuando agrego archivos a proyectos, no se compilan cuando se construye el proyecto. En Xcode 4, los agrego explícitamente en "Fases de compilación" -> "Compilar fuentes". Por qué estos no están configurados (a veces) de manera predeterminada, no lo sé. – wcochran