Yo uso una custom CollectionViewCell en mi Guión.
Cuando inicio la app me sale este mensaje:

No pudieron echar valor de tipo ‘UICollectionViewCell’ a
TestProject.CollectionViewCell.

InformationsquelleAutor coco | 2015-08-23

6 Comentarios

  1. 183

    De la plantilla para un CollectionViewController en Xcode viene con esta línea de código en viewDidLoad, que los cambios de la especificación en su guión.

    //Register cell classes
    self.collectionView!.register(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)

    Simplemente borrar esa línea.

    Mayores Swift versiones de la línea es:

    //Register cell classes
    self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
    • Esto provocaba un error para mí y, tras la eliminación, la vista hace ahora de carga. Sin embargo, ahora la UICollectionView ve terrible. Creo que la eliminación de esa línea de código significa todo mi restricciones de diseño que me había instalado en mi Guión, ahora son basura y tiene que ser añadido mediante programación?
    • Creo que la restricción problema tiene otra causa. De Apple docs: «Antes de llamar a la dequeueReusableCellWithReuseIdentifier:forIndexPath: método de la recolección de vista, se debe usar este método o el registerNib:forCellWithReuseIdentifier: método de decirle a la vista de colección cómo crear una nueva celda del tipo dado.» Mi experiencia es, que si la célula se define en un guión gráfico de la registerNib parece funcionar automáticamente.
    • Nota General: no es necesario inscribirse en las clases de células cuando se utiliza Storyboard prototipos. Si usted se registre, que reemplazará a su prototipo.
    • gracias por la nota, que el código ha cambiado en el ínterin. He actualizado la respuesta.
  2. 46

    Me enfrento a este problema , porque en el viewDidLoad() me he registrado mi celular con UICollectionViewCell clase . En mi cellForItemAtIndexPath utilizado CustomSubcalssCollectionViewCell para dequeueReusableCell.

    asegúrese de registerClass y dequeueReusableCell son la misma clase de resolver el problema

    self.registerClass(SomeUICollectionCellClass.self, forCellWithReuseIdentifier: reuseIdentifier)
    
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! SomeUICollectionCellClass
  3. 6

    He recibido este mensaje de error cuando la clase personalizada (en Xcode inspector) todavía tenía su clase de establecer el valor predeterminado UICollectionViewCell en lugar de mi clase personalizada para TestProject.CollectionViewCell.

    Para solucionarlo, basta con cambiar la clase personalizada para su implementación.

    No pudieron echar valor de tipo 'UICollectionViewCell'

    No pudieron echar valor de tipo 'UICollectionViewCell'

  4. 5

    Me golpeó este error al crear una instancia de un ViewController a partir de un Guión en mi unidad de prueba.

    storyboard.instantiateViewControllerWithIdentifier("someVC") as! MyViewController

    El problema era que se me había asignado un módulo específico en la Identidad del inspector para que VC en el Guión gráfico. Me lo quitaron por lo que por defecto el módulo actual, que es el módulo de la aplicación mientras se ejecuta y el módulo de Prueba durante la prueba.

  5. 1
     self.collectionView!
         .register(MyCollectionViewCell.self, 
                   forCellWithReuseIdentifier: reuseIdentifier
                  )

    Usted no tiene que eliminar esta línea. Usted tendrá que registrar su propia celda de la clase heredada por UICollectionViewCell.self si desea registrar clase mediante un código

  6. 0

    Obtendrá este error si registra su clase de células, tanto en el Guión y en el código. Elegir una o la otra, nunca las dos cosas y el problema desaparece.

    Deseo de Apple de no incluir este fragmento de código en sus plantillas:

    self.registerClass(SomeUICollectionCellClass.self, forCellWithReuseIdentifier: reuseIdentifier)

    Especial, ya que siempre recomendamos que usted se registre sus células a través de Guión gráfico. Hace cosas muy confuso.

Dejar respuesta

Please enter your comment!
Please enter your name here