Comment déclarer un "protégé" de la variable dans swift
Je veux créer une classe qui hérite d'une autre classe, qui est dans un autre fichier.
Par exemple:
Class1.swift
class Class1
{
protected var
//Do Stuff
}
Class2.swift
class Class2:Class1
{
//Do stuff
}
Comment aurais-je donc etde avoir accsess à un'protected variable/fonction swift?
Lorsque je déclare une variable privée/fonction, je ne peux l'utiliser en classe. Si j'utilise "fileprivate', mon autre classe doit être dans le fichier Class1. Ce que je veux faire est de garder mes classes dans seporate fichiers et utiliser les Groupes de l'intérieur Xcode pour savoir à quelle classe appartient à la catégorie.
- Double Possible de N'Swift ont des modificateurs d'accès?
- J'ai vu que le post becase il n'a rien dit au sujet de "protégés". Cela aurait pu être quelque chose qui a été ajouté dans une version ultérieure de swift, ou être accsessed dans un autre chemin.
- Un groupe dans Xcode n'a rien à voir avec la compilation ou à la langue elle-même. C'est juste une façon de regrouper logiquement les fichiers de votre projet, de même que des dossiers dans votre système de fichiers. Si vous voulez de mise en œuvre distincte, vous devez utiliser des modules, qui est, les objectifs du projet. Et puis utiliser
internal
. - Le post j'ai fait un lien est mis à jour pour Swift 3.
- savoir sur les groupes. J'aime avoir des classes dans diffrent fichiers de sorte qu'il est facile pour moi de voir où chaque classe etc. serait dans la structure du fichier.
Vous devez vous connecter pour publier un commentaire.
Que vous auriez à utiliser
internal
pour que Swift n'offre pas unprotected
mot-clé (contrairement à de nombreux autres langages de programmation).internal
est le seul modificateur d'accès entrefileprivate
etpublic
:Il y a un post de blog qui explique un peu plus sur les raisons de la langue, les concepteurs ont choisi de ne pas offrir un
protected
mot-clé (ou quelque chose d'équivalent).Certaines des raisons étant que les
et aussi le fait que
protected
pourrait entraîner des problèmes quand il s'agit d'extensions, car elle ne serait pas clair si les extensions doivent également avoir accès àprotected
propriétés ou pas.Même si Swift ne fournit pas
protected
accès, de toujours nous pouvez obtenir le même accès en utilisantfileprivate
de contrôle d'accès.Seule chose que nous devons garder à l'esprit que nous avons besoin de déclarer tous les enfants dans le même fichier en tant que parent déclarée.
Animal.swift
OtherFile.swift