2012-04-07 15 views
1

Ich versuche, auf die Nsstring-Daten außerhalb der Funktion und auch außerhalb der Klasse zuzugreifen.Zugriff auf die Zeichenfolge Daten außerhalb der Funktion und

Wie kann ich auf useridStr außerhalb der Funktion und Klasse zugreifen? Dies ist mein Code:

-(id)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    NSString *loginStatus = [[NSString alloc] initWithBytes:[webData mutableBytes] 
     length:[webData length] encoding:NSUTF8StringEncoding]; 
    NSDictionary *loginDict = [[loginStatus JSONValue] objectForKey:@"UserDetails"]; 
    NSArray *userId = [loginDict valueForKey: @"userid"]; 
    NSString *useridStr = [userId lastObject]; 
    NSLog(@"--------------....%@", useridStr); 
} 
+0

Verwenden Sie die Appdelegate-Klasse nicht zum Speichern globaler Werte? –

Antwort

3
NSUserDefaults *pre = [NSUserDefaults standardUserDefaults]; 
[pre setObject:useridStr forKey:@"useridStr"]; 

wo Sie String brauchen wollen:

NSUserDefaults *pre =[NSUserDefaults standardUserDefaults]; 
NSString * useridStr =[pre stringForKey:@"useridStr"]; 

ODER

In .h-Datei von anotherView

-(id)initUserInfo:(NSString *)string; 

In .m Datei von anotherView

-(id)initUserInfo:(NSString *)string{ 
if (self = [super initWithNibName:@"nextView" bundle:nil]) { 

    useridStr=string 
} 
return self; 
} 

In .m Datei von Firstview

-(IBAction)btnNext_TouchUpInside:(id)sender{ 
nextView *second =[[nextView alloc]initUserInfo:useridStr]; 
[self presentModalViewController:second animated:NO]; 
} 
1

Was Piyush vorgeschlagen ist auch richtig. Aber es gibt auch einen anderen Weg, es zu erreichen.

Als er NSUserDefaults vorgeschlagen Daten zu speichern, die Sie im Auge behalten sollte, dass NSUserDefaults allgemeinen Daten wie Präferenzen verwendet wird, zu retten, was Sie wollen, dass es auch gespeichert werden, nach der Anwendung durch den Benutzer geschlossen ist und Sie wieder auf diese Daten wenn Sie Ihre Bewerbung starten.

Wenn Sie also Daten wie Voreinstellungen speichern möchten, gehen Sie für NSUserDefaults. Wenn Sie möchten, dass Ihre Daten in der gesamten Anwendung verfügbar sind, während sie ausgeführt wird, und Sie sie nicht wie Voreinstellungen speichern müssen, empfehle ich Ihnen, das Objekt global in der Datei Appdelegate zu deklarieren und auf sie zuzugreifen, wann immer Sie es benötigen. Sie sollten sie nicht wie NSUserDefaults speichern, weil wie Apple-Dokument sagt, was auch immer Sie in NSUserDefaults speichern, wird es in der Standarddatenbank des Benutzers gespeichert. Das wird Speicher Ihres Gerätes verbrauchen. Also kurz alles zu speichern NSUserDefaults wird keine gute Idee sein, wenn wir Speicherverwaltungskonzepte betrachten.

Verwandte Themen