No puede referirse a sí mismo desde dentro de una propiedad perezosa en swift

Hace poco tropecé con algo extraño en mi código, tengo progtwigción en el mismo proyecto durante unos días, pero de repente traté de crear una propiedad perezosa con este código:

import UIKit class CategoryViewController: UICollectionViewController { lazy var searchController: UISearchController = { let searchController = UISearchController(searchResultsController: nil) searchController.searchBar.frame = CGRect(x: 0, y: 0, width: CGRectGetWidth(self.collectionView.frame), height: 44) return searchController }() } 

Ahora cada vez que bash referirme a mí mismo en el bloque perezoso produce esto:

 self.(<#NSObject#>) 

y no puede acceder a ninguna de las otras properties.

Si trato de codificarlos con dificultad, produce:

 UICollectionView? does not have a member named 'frame' 

Y el código de arriba muestra:

 Extra argument 'width' in call 

Ya intenté volver a escribir el código y eliminar los datos derivados, comstackr nuevamente, pero el error sigue persistiendo. ¿Alguna idea de por qué podría suceder?

Gracias por adelantado

Actualizar cuadro de autocompletado:

introduzca la descripción de la imagen aquí

UICollectionView? no tiene un miembro llamado 'marco'

¿Ver el signo de interrogación? Eso significa que esto es opcional. No puede enviar ningún post a un Opcional hasta que lo desenvuelva. Entonces, desenvolverlo: self.collectionView!.frame

EDITAR La razón por la que esto funcionó antes, y luego el código se rompió, es que la API Swift cambió. Apple hace esto mucho, así que tienes que "rodar con los golpes". Debe estar preparado para que su código se rompa cada vez que actualice Xcode. Han cambiado de opinión tres veces sobre si una collectionView de UICollectionViewController debe ser opcional o no. Y no estoy del todo convencido de que su respuesta sea correcta incluso ahora.

Edición adicional Mostrando que la autocomplete funciona:

introduzca la descripción de la imagen aquí