1

関数の外部およびクラスの外部でnsstringデータにアクセスしようとしています。

useridStr関数とクラスの外部にアクセスするにはどうすればよいですか?これは私のコードです:

-(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);
}
4

2 に答える 2

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

文字列が必要な場所:

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

また

anotherViewの.hファイル内

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

anotherViewの.mファイル内

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

    useridStr=string
}
return self;
}

firstViewの.mファイル

-(IBAction)btnNext_TouchUpInside:(id)sender{
nextView *second =[[nextView alloc]initUserInfo:useridStr];
[self presentModalViewController:second animated:NO];
}
于 2012-04-07T04:34:24.420 に答える
1

Piyushが提案したことも正しいです。しかし、それを達成する別の方法もあります。

彼がデータを保存するためにNSUserDefaultsを提案したように、 NSUserDefaultsは通常、アプリケーションがユーザーによって閉じられた後でも保存したい設定などのデータを保存するために使用され、アプリケーションの起動時にそれらのデータが再び必要になることを覚えておく必要があります。

したがって、設定などのデータを保存する場合は、 NSUserDefaultsを選択してください。アプリケーションの実行中にデータをアプリケーション全体で利用できるようにし、設定のようにデータを保存する必要がない場合は、そのオブジェクトをAppdelegateファイルでグローバルに宣言し、必要なときにいつでもアクセスすることをお勧めします。これらをNSUserDefaultsとして保存しないでください。これは、Appleドキュメントに NSUserDefaultsに保存する内容が記載されているため、ユーザーのデフォルトデータベースに保存されるためです。そのため、デバイスのメモリを消費します。したがって、メモリ管理の概念を検討する場合、要するにすべてをNSUserDefaultsに保存することはお勧めできません。

于 2012-04-07T06:00:20.467 に答える