Storyboard warning: las celdas de la tabla de prototypes deben tener identificadores de reutilización

Recibo esta advertencia del storyboard: las celdas de la tabla de prototypes deben tener identificadores de reutilización.

He cambiado el nombre del identificador en el inspector de attributes, pero no parece haber eliminado la advertencia.

¿Alguna sugerencia?

Para callar la advertencia, debe dar un nombre al identificador de la celda:

introduzca la descripción de la imagen aquí

Otra forma es establecer la propiedad 'Prototype Cells' de Table View a cero en el Inspector de attributes, si está definiendo la celda utilizando un .xib de manera programática.

Establecer celdas prototipo en 0 en Inspector de atributos

Como storyboard es en realidad un file XML, ¡otro truco es abrir tu storyboard con cualquier editor de text (no Xcode!) E intentar encontrar todos los nodos tableViewCell. Por ejemplo, presione CMD + F , escriba <tableViewCell contentMode="scaleToFill" y presione Entrar. Probablemente se enterará, las filas son iguales a esta:

 <tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="GenericCellID" id="kBr-Qn-Tki"> 

Por favor, preste atención a reuseIdentifier="GenericCellID" valor de key reuseIdentifier="GenericCellID" . Las filas que disparan la advertencia (sin identificadores de reutilización) no tendrán ese valor key. Mire los nodos anteriores en su editor de text y verá el nodo tableViewController con el nombre de class que necesita revisar en el editor de guiones charts de Xcode y corregirlos, de acuerdo con la respuesta de aleroot.

Dado que hacer doble clic en esta advertencia puede llevar a un poco de persecución salvaje (el UITableViewCell específico no se selecciona), solo quería agregar que mientras algunas de estas advertencias se resolverán automáticamente, otras no .

Si está seguro de que ha labeldo todas sus celdas en Storyboard, reconstruya el proyecto; su advertencia puede desaparecer (al igual que la mía).

Me he dado count de que este error se produce cuando tiene varias celdas de prototipo (en las properties de tableview) y no se han dado todos los identificadores de reutilización.

El identificador es el nombre al que hace reference en su file .m. Cuando no está lleno, no es posible hacer reference a la celda.

Esto para configurar el identificador de reutilización mediante progtwigción

 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath*)indexPath { static NSString *cellIdentifier = @"wot"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath]; if (!cell) cell = [[UITableViewCell alloc] initWithStyle: someStyle reuseIdentifier: cellIdentifier]; return cell; } 

Recibí esta advertencia para Xcode 7. Estoy trabajando con Swift. No agregué el controller de navigation para el controller de vista inicial. Cuando lo hice … recibí esta advertencia de StoryBoard. Lo que hice es:

  1. Hay dos segues
    1. desde el controller de navigation hasta el controller de vista raíz y
    2. desde el controller de Root View a su controller de vista inicial.
  2. Seleccione la opción para conectar el controller de vista raíz al controller de vista inicial.
  3. Nombra el identificador
  4. Seleccione la parte escrita "Prototipo" del controller -> allí verá el identificador como una opción.
  5. Pegue el mismo nombre del identificador que ingresó anteriormente.

La advertencia va … si no limpia el sdk 🙂

Asegúrese de que está configurando el identificador de reutilización en el object, en lugar de la ID de restauración . Ambos están disponibles a través del guión gráfico y se confunden fácilmente.

En el file XML de storyboard, querrá configurar reuseIdentifier , not restrationIdentifier .

Un gran saludo: reiniciar XCode funcionó para mí (pero probablemente fue solo una reconstrucción manual que se requirió).