Estoy tratando de crear una plumilla que contenga una vista que se incrustará en TableViewCell. Creé la interfaz y los archivos de implementación ResultCell.h
y ResultCell.m
. Están disponibles, listos para usar, sin cambios de código.
Luego creo un archivo XIB vacío y arrastro un UIView sobre él. Luego hago clic en Propietario del archivo y establezco el tipo en ResultCell
. Hago clic en la vista y configuro su clase para que también sea ResultCell
.
Estos son los problemas que tengo:
- Cuando utilizo la vista Editor asistente (en la que vivo), el
ResultCell.h
archivo no aparece cuando veo el archivo ResultCell.xib. Tengo que forzarlo a cargar haciendo clic en Automático y seleccionando el archivo. - Cuando coloco una etiqueta en la vista, y luego Ctrl + clic y arrastro a .h para crear una salida, aparece este mensaje de error: " No se pudo insertar una nueva conexión de salida: no se pudo encontrar ninguna información sobre la clase llamada ResultCell. "
He intentado crear y volver a crear la vista, pero no funciona y he empezado a perder la paciencia. ¡Cualquier ayuda sería muy, muy apreciada!
Respuestas:
Es posible que esto no funcione para su problema específico, pero ocasionalmente obtengo ese error cuando trabajo con puntas recién creadas. Eliminar y volver a crear las puntas y los controladores de vista con los mismos nombres que antes no resolvió el problema, pero el reinicio de Xcode sí.
fuente
~/Library/Developer/Xcode/DerivedData
)Entré en un estado similar hoy. Era muy extraño: podía adjuntar cualquier XIB (nuevo o existente) a cualquier clase ViewController ya existente en el proyecto, pero no podía crear un nuevo ViewController y hacer que se adjuntara correctamente a cualquier XIB. La funcionalidad de "asistente" no funcionó, ni tampoco la funcionalidad de conexión de IB a archivo de encabezado.
Cerrar el proyecto y reabrirlo no lo solucionó.
Salir de XCode y reiniciar no lo solucionó.
Crear un nuevo proyecto y probar la funcionalidad funcionó bien, lo que me llevó a creer que había algo corrupto en algún caché en alguna parte.
Mi solución
Por cierto, el simple hecho de realizar una limpieza completa no pareció aclarar las cosas. Tuve que tirar los datos derivados a la basura. Estoy seguro de que llegué a esta posición debido a los juegos de git que estaba jugando, pero no tenía idea de cómo salir, porque incluso volver a las revisiones de git anteriores no ayudó. (Esa fue una gran pista también de que era algo que el proyecto no había seguido).
fuente
Acabo de tener este problema y reiniciar Xcode no lo solucionó. Eliminé los archivos de clase del proyecto, luego los volví a agregar y comenzó a funcionar.
fuente
Tuve el mismo problema. Y lo intenté:
Nada de eso funcionó. Lo que funcionó para mí fue simplemente:
¡Y hecho!
fuente
Si reiniciar Xcode no funciona para usted, descubrí que alternar el nuevo archivo .m y volver a la membresía de destino funciona.
fuente
Esto me ayudó:
Si no ve un "panel", mire la esquina superior derecha de la ventana y habilite los botones de "vista" adecuados. Si no ve los botones "ver", haga clic en el botón de la cápsula situado más a la derecha.
fuente
Noté que el archivo .m se movió dentro de la carpeta en.lproj.
Simplemente elimine (solo referencia) el archivo .m del Xcode y mueva .m fuera del en.lproj. Añádelo de nuevo y solucionará el problema.
No se preocupe, recuperará todas sus conexiones.
fuente
Hoy encontré el mismo problema. Reiniciar XCode no solucionó el problema. Pude volver a la normalidad usando la opción "Eliminar" de "Datos derivados" del proyecto que se puede encontrar en Organizador . El organizador dice que "los datos derivados incluyen índices, resultados de compilación y registros". Supongo que el índice o el resultado de la compilación estaban causando este problema.
fuente
en XCode, vaya al organizador, haga clic en proyecto, haga clic en eliminar datos derivados ... luego limpie el proyecto
fuente
En mi caso, ayudó a hacer un "cambio falso" (solo un espacio) en el archivo de encabezado correspondiente.
fuente
UITableViewCell
UIView
sobre el lienzo vacío, debe arrastrar unUITableViewCell
Cada vez que desee cargar una nueva celda, llame a:
[[NSBundle mainBundle] loadNibNamed:nibName owner:controllerWithOutletToCell options:nil]
después de la carga, use la celda y configure el ivar / salida a cero, listo para la siguiente carga
hay otras formas, pero esto es común
fuente
Quizás lo que funcionó para mí es esto ... (Xcode v4.5)
Esto no funcionó
Estaba tratando de controlar el arrastre en la definición de interfaz de mi .h
@interface SearchViewController : UIViewController
@end
Esto funcionó (puede ser así como se suponía que debía funcionar, no lo sabía antes). Vea los corchetes de apertura y cierre. Control de arrastrar y soltar después del corchete cerrado.
@interface SearchViewController : UIViewController { } @end
fuente
Tuve un problema similar con un proyecto escrito en Swift.
Lo que funcionó para mí fue configurar IBOutlet en un código como este
@IBOutlet var foo: UIView?
y luego conéctelo a Interface Builder arrastrándolo al pequeño círculo que apareció justo al lado de la línea de código.
fuente
Ninguna de las soluciones anteriores resolvió el problema del conector para mí, así que archivé mi proyecto favorito hasta que encontré el siguiente hilo de stackoverflow:
https://stackoverflow.com/a/15873770/2846800
Había estado trabajando en un gran proyecto en una versión anterior de XCode y había desactivado la indexación. Al volver a habilitar la indexación, mi problema ahora está solucionado:
defaults delete com.apple.dt.XCode IDEIndexDisable
Ahora puedo usar las funciones D&D de Interface Builder. Espero que esto pueda ayudar a otros ...
fuente
Este problema parece ser un error de Xcode que se repite sobre todo cuando reemplaza un archivo con un nuevo archivo del mismo nombre. Xcode parece mantener una referencia al archivo anterior del mismo nombre.
De todos modos, la forma de solucionar esto parece ser:
(Los pasos 1 y 2 solos lo arreglaron para mí).
fuente
Si copió archivos de otro proyecto, asegúrese de marcar la casilla 'Agregar a objetivos'
fuente
Cambiar el nombre de los archivos de clase puede desvincularlos del XIB. Esta respuesta me ayudó a descubrir esto:
Ctrl-Arrastrar del botón al método no funciona. Generador de Xcode / Interface
Compruebe que su clase personalizada esté configurada correctamente en el Inspector de identidad.
fuente
Síntoma similar, pero causa diferente.
Aparentemente, presioné la tecla de retroceso cuando el foco estaba en la vista del asistente, porque una de las líneas de comentarios de la plantilla de archivo estándar fue de // a / lo que hace que el archivo no se compile.
La corrección del comentario permitió al SDK analizar el archivo, reconocerlo como un UIViewController y agregarlo a la salida.
Entonces, si tiene este problema, compile o analice para ver si hay errores que deben solucionarse en el archivo .h de su controlador de vista. LUEGO pruebe las otras soluciones.
fuente
Este puede ser un tema antiguo, pero en caso de que alguien tenga el mismo problema en el futuro, intente eliminar los archivos .xib, .hy .m asociados y cree otros nuevos. Para mí, el UIViewController en mi archivo .h no era violeta e incluso retroceder y escribir no ayudó.
fuente
Simplemente coloque una línea entre @implementation y @synthesize. La mayoría de las respuestas aquí tienen eso en común. Funcionó para mi
@implementation @synthesize
fuente
Intenté todo aquí y nada funcionó (usando una Vista previa de desarrollador para Xcode 5).
Lo único que funcionó para mí fue poner esta línea incompleta en mi archivo de interfaz:
@property (nonatomic, weak)
Por el motivo que sea, agregar puntos de venta y acciones arrastrando y soltando desde un .xib funcionó bien después de eso.
fuente
Para mí, si limpiar o eliminar DerivedData resolvió el problema.
Intenté eliminar y volver a crear mi clase UIViewController varias veces y tuve el problema una y otra vez.
Luego recreé la clase UIViewController y le di un nombre diferente. Esto resolvió mi problema.
fuente
He tenido este problema y encontré una solución que no figura en la lista anterior.
En mi caso, pude ver que había algo mal en el archivo .h de la clase porque mi controlador de vista personalizado no reconocía la clase: UIViewController (estaba en negro, no en púrpura). Todos los demás controladores de vista personalizados tenían: UIViewController en violeta.
en mi caso, y posiblemente el tuyo, necesitaba agregar la clase al menú desplegable de objetivos / fases de compilación / fuentes de compilación. Es necesario agregar el .m. Todos los otros .m estaban allí, pero no este.
Una vez que lo agregué, el: UIViewController apareció en púrpura y todo funcionó bien.
fuente
Para mi caso, tengo varios proyectos con algunas otras dependencias. Intenté resolverlo eliminando datos derivados o reiniciando XCode pero no pudo funcionar. Al final, probé el siguiente método y funciona:
Vaya a target> Build Target Architectures Only> y configure Debug y Release en NO.
Configure esto para todos los proyectos en el espacio de trabajo y vuelva a compilar para asegurarse de que no haya otros errores. Quizás no tenga sentido, pero de alguna manera lo hizo. Durante mi compilación, tuve otros problemas, como errores del vinculador y símbolos no encontrados.
fuente
Para el archivo * .m de esta vista de clase, abra "Mostrar Inspector de archivos" y desmarque "Membresía de destino" para este proyecto, luego haga Limpiar (menú Producto-> Limpiar) y vuelva a marcar "Membresía de destino" para este proyecto
fuente
Usando Swift, tuve un problema similar. Descubrí que los comentarios eran parte del problema para mí.
Aproveché el controlador de vista predeterminado, trabajé un poco en él, luego creé un segundo controlador de vista copiando el primero completo, reduciéndolo a solo viewDidLoad () y cambiando el nombre de la clase a TestViewController. Las compilaciones funcionaron, el código se ejecutó. Todo estuvo bien.
Cuando fui a arrastrar un UITextField para crear una salida, no me dejaba. Noté que mis comentarios todavía decían "ViewController.swift", así que cambié el texto del comentario a "TestViewController.swift" y lo reconstruí. ¡Pude conectar mi enchufe!
Me pregunto si lo que ocurrió es que el indexador estaba leyendo los comentarios y también los nombres de las clases, y de alguna manera se confundió.
fuente
Espero que esto ayude a alguien.
Solo tuve que eliminar la carpeta de datos derivados. Debe hacer clic en Ventana -> Organizador -> Proyectos -> Eliminar datos derivados
Y REINICIE XCODE.
¡Usted debe ser bueno para ir!
fuente
La nueva clase que no forma parte del "OBJETIVO" es probablemente la causa principal de esto, como se alude en algunas de estas respuestas.
Al crear una nueva clase de cacao, de forma predeterminada, la opción para agregar una nueva clase al objetivo está marcada de forma predeterminada, pero si, por cualquier motivo, esto no se verifica cuando presione guardar, tendrá este problema.
Cualquiera de estas soluciones que agregan la nueva clase al destino de las aplicaciones funcionará para resolver el problema, y es algo que todas estas 'correcciones' tienen en común.
Creo que XCode probablemente tiene algunos errores que hacen que un nuevo archivo, de forma predeterminada, NO se agregue al objetivo principal de la aplicación. La solución se reduce a agregar su clase 'rota' al OBJETIVO principal
fuente
En XCode 7.1, la adición del conector en un punto diferente en mi archivo fuente funcionó. El error que recibía se refería a una de mis variables como si fuera una clase (no tenía ningún sentido). El error dejó de ocurrir cuando agregué el conector debajo de esa variable en lugar de arriba.
fuente
También hay una razón diferente para el problema ... si ha creado un nuevo archivo de clase de cocoa con una plantilla que no sea ios ... puede suceder ...
La solución sería eliminarlo y volver a crearlo con la plantilla correcta
fuente