Membre de l'Instance ne peut pas être utilisé sur le type de

J'ai la classe suivante:

class ReportView: NSView {  
    var categoriesPerPage = [[Int]]()
    var numPages: Int = { return categoriesPerPage.count }
}

Compilation échoue avec le message:

Membre de l'Instance 'categoriesPerPage' ne peut pas être utilisé sur le type de
'ReportView'

Qu'est-ce que cela signifie?

  • Deviner que vous allez déclarer une propriété calculée numPages plutôt que d'une fermeture à supprimer le signe égal: var numPages: Int { return categoriesPerPage.count }
  • Pouvez s'il vous plaît être expliqué de façon plus approfondie exactement ce que ce message d'erreur signifie? Je suis de le voir dans un contexte totalement différent.
  • Lorsque vous déclarez un bloc dans le domaine de la classe, comme ci-dessus, vous êtes limité à ce qui est disponible dans le type. Vous n'avez pas accès à tout les membres de l'instance.
  • Remarque: Le message d'erreur est similaire à celui que vous obtenez lorsque vous essayez de créer un paresseux variable, mais vous avez oublié une des exigences. Dans votre cas, vous ne voulez pas un paresseux variable depuis categoriesPerPage est défini comme var au lieu de let.
  • Supprimer = à partir de: var nbpages: Int =
  • J'ai atterri ici, à l'aide d'une struct. J'ai été absent static let

InformationsquelleAutor Aderstedt | 2015-09-02