Funciones de llamada UICollectionViewcell una y otra vez

Me he ido este uicollectionviewcell

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! PostCell
    if let CurrentPost = posts[indexPath.row] as? Post{
        //determine which constraint to call
        if(CurrentPost.PostText != nil){
            if(CurrentPost.PostImage != nil){
                cell.postImage.image = CurrentPost.PostImage
                cell.cellConstraintsWithImageWithText()
            }else{
                cell.postImage.image = nil
                cell.cellConstraintsWithoutImageWithText()
            }
        }else{
            cell.postImage.image = CurrentPost.PostImage
            cell.cellConstraintsWithImageWithoutText()
        }
    }
    return cell
}

Mi objetivo es determinar qué función apuntar en función de la ausencia o presencia de imagen y texto. Ahora el problema es que todas estas funciones se llaman porque algunas celdas tienen imágenescellConstraintsWithImageWithText se llama, otros no los tienencellConstraintsWithoutImageWithText se llama ¿Cómo puedo llamar a una sola función para una sola celda en lugar de todas las celdas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta