web-dev-qa-db-fra.com

swift: déclarer une variable publique

class XYActivity: UIActivity,YouTubeHelperDelegate
{
    var youTubeHelper:YouTubeHelper
    var uploadURL: String!
    override init() {
        self.youTubeHelper = YouTubeHelper()
    }
    override  func activityType() -> String? {
        return nil
    }
//
}

Je veux rendre uploadURL public, c'est-à-dire être assigné dans une autre classe. Quand j'ajoute du public devant var uploadURL:String! il me suggère de le faire en interne. Je veux le rendre public. Veuillez aider

12
rishu1992

Pour la rendre publique, la classe doit être déclarée publique.

Par défaut, le modificateur est interne, ce qui rend les classes, méthodes et propriétés non déclarées explicitement comme privées disponibles n'importe où dans le module actuel.

Si votre projet se compose uniquement d'une application, vous n'avez probablement pas besoin de public - interne a le même effet. Si vous développez un framework à la place et que vous avez besoin de cette propriété accessible à partir du code dans d'autres modules, vous devez déclarer la classe entière et les méthodes/propriétés exposées comme publiques.

Lecture suggérée: Contrôle d'accès

Extrait décrivant les niveaux d'accès par défaut :

Toutes les entités de votre code (à quelques exceptions spécifiques, comme décrit plus loin dans ce chapitre) ont un niveau d'accès par défaut interne si vous ne spécifiez pas vous-même un niveau d'accès explicite. Par conséquent, dans de nombreux cas, vous n'avez pas besoin de spécifier un niveau d'accès explicite dans votre code.

et niveaux d'accès pour les applications à cible unique :

Lorsque vous écrivez une application simple cible unique, le code de votre application est généralement autonome dans l'application et n'a pas besoin d'être rendu disponible en dehors du module de l'application. Le niveau d'accès par défaut de interne correspond déjà à cette exigence. Par conséquent, vous n'avez pas besoin de spécifier un niveau d'accès personnalisé. Vous pouvez cependant vouloir marquer certaines parties de votre code comme privées afin de masquer leurs détails d'implémentation à d'autres codes dans le module de l'application.

17
Antonio

Vous pouvez le rendre public si la classe qui le contient est également publique, alors changez cela en fonction.

3
Dániel Nagy

JuST AJOUTER un mot-clé "public" au démarrage, cela le rendra public dans l'application.

2