2011-08-12 11 views
8

Estoy probando el nuevo Xcode 4.2 Beta y me pregunto si mi código es incorrecto o si estoy tropezando con un error.Compilación de Xcode 4.2 Falló con la celda del prototipo

La nueva característica del Guión gráfico es prometedora pero extremadamente fallada en este momento. Ahora mismo he creado un proyecto simple con una tabla vista. Esta vista de tabla será "estilo agrupado" que contiene UITextFields. La nueva característica "Prototype Cell" del guión gráfico le permite crear un prototipo de celda en GUI que puede dibujar con el "Reuse identifier" en el método cellForRowAtIndexPath. Cuando arrastro un UITextField en esta "celda de prototipo" y lo dibujo, ¡funciona muy bien!

¡Sin embargo! Cuando hago referencia a este campo de texto en una salida de mi código, aparece el error: Sin categoría Compilación fallida. No se puede escribir en la ruta: ... (Ruta a datos derivados)

¿Por qué es esto? ¿Es un error? ¿Alguien más puede obtener esto?

+0

Puedo confirmar que hacer referencia a un UITextField en un prototipo de celda no funciona ... Xcode 4.2.1 ... humph – lol

+0

La respuesta de Tony a continuación funcionó para mí. Tal vez @ObjectiveCoder podría aceptarlo? – Thompsonian

+0

La respuesta de Tony me ayudó a darme cuenta de lo que estaba mal: tenía una salida entre mi celda (en el guión gráfico) y mi clase de vista de tabla (código). ¡Se suponía que el tomacorriente estaba entre la celda del guión gráfico y la clase celular, por supuesto! – dvkch

Respuesta

1

No tengo la solución perfecta para su problema, pero tuve la misma y encontré la manera de hacerlo funcionar (sin conectar la salida al TableViewController).

Intente recrear su vista desde cero y compilar & Ejecutar cada vez que agrega un componente.

En orden, agregue TableViewController => Test si muestra una tabla vacía.

Diseñe su celda personalizada y vincule los Salones de su celda a ella. (Sin olvidar cambiar la Clase de su TableViewCell) => Vuelva a probarlo

Luego cambie la Clase del TableViewController a su clase y ahora podrá acceder a las salidas de su celda.

Me funcionó. Espero que sea para ti

+0

¡Ese fue el problema, gracias! – dvkch

+0

Iba a publicar esta solución yo mismo, pero la tiene muy detallada. El problema se debe a un enlace a una propiedad en lo que probablemente sea ViewController que contiene UITableView. En su lugar, debe crear la clase UITableViewCell y enlazar a esas propiedades como lo ha indicado TroX. –

31

Me he encontrado con este problema en un par de ocasiones en Xcode 4.2 (versión final también).

Por lo general, está relacionado con una toma de corriente u otra conexión que haya configurado y que molesta al compilador (a falta de un término mejor). El truco es determinar qué conexión (es).

Usted puede ver la salida detallada del proceso de construcción en Xcode 4.2 de la siguiente manera:

  1. Cambiar al navegador de registro en el panel del extremo izquierdo
  2. Seleccione "Build"
  3. Debe ver el (los) error (es), incluido su error de compilación fallida.
  4. Puede expandir el registro de compilación para ese error haciendo clic en el ícono más a la derecha (parece una lista). Eso debería expandirse y mostrar el error que causa los problemas.
+1

Hice una relación incorrecta en un ViewController. Al usar el registro, pude ver esa falla. Gracias. – Nasenbaer

+0

Muchas gracias. Me salvaste muchas horas de depuración. – iRuth

1

Tuve que eliminar la carpeta de mi proyecto en ~/Library/Developer/Xcode/DerivedData/y reconstruir. Puede encontrar el nombre de esa carpeta en los registros usando el procedimiento de Tony anterior.

EDIT: Ahora creo que esto es un error en Xcode (Versión 4.2.1). Es intermitente para mí. Para solucionarlo tengo que reconstruir, a veces dos o tres veces. Build/Clean no parece ayudar.

EDIT 2: Bien, con suerte, el problema real. Tenía dos referencias a mi guión gráfico en el navegador del proyecto (probablemente un remanente de copiar/reconstruir el proyecto). Acabo de eliminar uno de ellos (¡asegurándome de borrar solo la referencia!). Parece probable que sea el problema (Xcode compila el mismo archivo dos veces al mismo tiempo).

4

Si alguien todavía tiene un problema con esto, creo que la solución es usar etiquetas en lugar de enchufes.

cellForRowAtIndexPath UILabel *titleLabel = (UILabel *)[cell viewWithTag:1001]; titleLabel.text = @"Name";

+0

+1. ¡Gracias! Parece que es la forma correcta de hacerlo. También se menciona aquí http://stackoverflow.com/questions/9236621/what-does-the-couldnt-compile-connection-error-mean – Dexter

0

No debe agregar el título o la etiqueta de imagen o de detalle a una toma de corriente.

¿Por qué necesita una salida de todos modos?

Se modifican implícitamente dentro del código cuando implementa los protocolos.

4

OK un colega mío me mostró el inspector de conexiones y listo, había una conexión anterior que causaba el error de compilación. Por lo tanto, seleccione el archivo .storyboard, abra el inspector de conexiones (el último con la flecha) y le dará una descripción general de todas las conexiones.

1

Recibí este error cuando traté de poner un/en el nombre de una identificación del guión gráfico. ¡Comprueba que estás usando personajes seguros! (Doh!)

Cuestiones relacionadas