2010-04-27 9 views
5

Ho bisogno di creare una NSString, così posso impostare il suo valore in una classe e ottenerla in un'altra. Come posso farlo?Global NSString

+0

È necessario modificare la stringa durante il runtime? – MrHen

+0

Tutte le soluzioni per stringhe e singleton globali solo perché la domanda lo menzionava. È perfettamente possibile farlo con le proprietà di un oggetto se la domanda riguarda solo la creazione/modifica di una stringa in un uso limitato. Le notifiche sono un altro modo. KVO è un altro modo. - Potresti anche usare la delega. Non ci sono abbastanza informazioni nella domanda per consentire di fornire una risposta ponderata. – Abizern

risposta

9

se si scrive:

NSString *globalString = @"someString"; 

ovunque al di fuori di un metodo, definizione di classe, la funzione , ecc ... sarà in grado di essere referenziato ovunque. (È globale!)

Il file che vi accede la dichiareremo come esterno

extern NSString *globalString; 

Questa dichiarazione significa che esso si accede da un altro file.

5

Farlo una variabile globale.

In un unico file di portata globale:

NSMutableString *myString = @"some funny string"; 

nell'altro file:

extern NSMutableString *myString; 
3

Se si sta creando una variabile globale NSString, è consigliabile utilizzare probabilmente un metodo di classe.

In MyClass.h:

@interface MyClass : NSObject {} 
    + (NSString *)myGlobalVariable; 
    + (void)setMyGlobalVariable:(NSString *)val; 
@end 

In MyClass.m:

@implementation MyClass 
    NSString *myGlobalVariable = @"default value"; 

    + (NSString *)myGlobalVariable { 
     return myGlobalVariable; 
    } 

    + (void)setMyGlobalVariable:(NSString *)val { 
     myGlobalVariable = val; 
    } 
@end 
2

ricordare che si dovrebbe tenere l'allocazione di memoria e liberando in mente. Questa non è la stessa cosa di un valore int globale: è necessario gestire la memoria con qualsiasi NSObject.

Ripetutamente si verificherà solo l'impostazione globale delle nuove stringhe. L'accesso tramite thread creerà tutti i tipi di problemi. Poi c'è l'arresto in cui l'ultima stringa sarà ancora in giro.

6

globale NSString variabile per progetto completo iPhone/Applicazioni

Per Declare/Definire/utilizzare una variabile globale seguire questi semplici passaggi: -

  1. creare un file NSObject con il nome di "GlobalVars.h e .m" o come u desiderio
  2. dichiarare la variabile globale nel file di GlobalVars.h dopo #import e prima @implementation come-

    NSString esterno * Nome_var;

  3. inizializzarlo in GlobalVars.m file dopo #import e prima @implementation come-

    NSString * Var_name = @ "";

  4. Definire la proprietà in AppDelegate.h file

    @property (nonatomic, mantenere) NSString * nome_var;

  5. sintetizzarlo in AppDelegate.m file come-

    @synthesize nome_var;

  6. Ora dove si desidera utilizzare questa variabile (in .m file) è sufficiente importare/includere il file GlobalVars.h in tutti i file .h e si può accedere facilmente a questa variabile come Globalmente.

  7. Seguire attentamente questi passaggi e funzionerà Sicuramente.
+0

Funziona! Ma avevo bisogno di rimuovere i passaggi 4 e 5. Non so perché, ma ha funzionato. –

+0

È grandioso, grazie per l'ultima! @BrynnerFerreira –