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

Voglio rendere pubblico uploadURL, vale a dire, essere assegnato in un'altra classe. Quando aggiungo il pubblico di fronte a var uploadURL:String! mi suggerisce di renderlo come interno. Voglio renderlo pubblico. Please helpswift: dichiarazione variabile pubblica

risposta

16

Per renderlo pubblico, la classe deve essere dichiarata come pubblica.

Per impostazione predefinita il modificatore è interno, il che rende classi, metodi e proprietà non dichiarati esplicitamente come privati ​​disponibili in qualsiasi punto del modulo corrente.

Se il tuo progetto è costituito solo da un'app, probabilmente non hai bisogno di pubblico - l'interno ha lo stesso effetto. Se invece stai sviluppando un framework e hai bisogno di quella proprietà accessibile dal codice in altri moduli, devi dichiarare l'intera classe e i metodi/proprietà esposti come pubblici.

Lettura consigliata: Access Control

Estratto descrivere i livelli predefiniti di accesso:

Tutte le entità nel codice (con poche eccezioni specifiche, come descritto più avanti in questo capitolo) hanno un livello di accesso predefinito di interno se non si specifica un livello di accesso esplicito. Di conseguenza, in molti casi non è necessario specificare un livello di accesso esplicito nel codice.

e livelli di accesso per le applicazioni single-bersaglio:

Quando si scrive una semplice applicazione singolo bersaglio, il codice nella vostra applicazione è in genere autonomo all'interno della app e non ha bisogno essere reso disponibile al di fuori del modulo dell'app. Il livello di accesso predefinito interno corrisponde già a questo requisito. Pertanto, non è necessario specificare un livello di accesso personalizzato. Tuttavia, potresti voler contrassegnare alcune parti del tuo codice come private per nascondere i loro dettagli di implementazione da un altro codice all'interno del modulo dell'app.

+0

quindi devo menzionare pubblico o privato per tutti i metodi? Mi chiede di farlo se aggiungo il pubblico di fronte alla dichiarazione di classe – rishu1992

+0

Se non si specifica un modificatore, il valore predefinito è 'internal'. Si utilizza 'private' per limitare la visibilità di un'entità al file corrente in cui è definita. Si usa 'public' invece di renderlo disponibile a qualsiasi modulo. Suggerisco di leggere la documentazione, ho postato il link nella risposta. – Antonio

3

È possibile renderlo pubblico se la classe che lo contiene è anche pubblico, quindi modificarlo in base ad esso.

+0

quindi dovrei aggiungere pubblico come questo? classe pubblica XYAttività: .... – rishu1992

+0

Sì, esattamente così. –

1

JuST AGGIUNGI una parola chiave "pubblico" all'inizio ciò lo renderà pubblico nell'app.

Problemi correlati