我试图在函数外部访问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);
}
答案 0 :(得分:3)
NSUserDefaults *pre = [NSUserDefaults standardUserDefaults];
[pre setObject:useridStr forKey:@"useridStr"];
你想要字符串:
NSUserDefaults *pre =[NSUserDefaults standardUserDefaults];
NSString * useridStr =[pre stringForKey:@"useridStr"];
OR
在另一个视图的.h文件中
-(id)initUserInfo:(NSString *)string;
在另一个视图的.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];
}
答案 1 :(得分:1)
Piyush建议的也是正确的。但是还有另一种方法可以实现它。
当他建议 NSUserDefaults 来保存数据时,您应该记住 NSUserDefaults 通常用于保存您想要的偏好数据它甚至在用户关闭应用程序后存储,并且在启动应用程序时又需要这些数据。
因此,如果您想保存偏好等数据,请转到 NSUserDefaults 。如果您希望数据在运行期间在整个应用程序中可用,并且您不需要像偏好一样保存它们,我建议您在Appdelegate
文件中全局声明该对象,并在需要时访问它们。您不应将它们存储为 NSUserDefaults ,因为Apple文档说明您在 NSUserDefaults 中存储的内容,它将保存在用户的默认数据库中。这样会占用设备的内存。因此,如果我们考虑内存管理概念,简而言之,将所有内容保存到 NSUserDefaults 将不是一个好主意。