将用户标识存储在内存IOS中

我用一个loginfunction做了一个IOS应用程序。 我使用ASIHTTPRequest来检查用户是否存在于MySQL数据库中。 所有工作正常,但我想通过其他viewcontrollers用户名或检索它的应用程序的其他部分。

有人能把我推向正确的方向吗?如何以最好和最安全的方式做到这一点?

这是我对PHP脚本执行POST HTTP请求的方式:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"*SOME_URL*"]]; 

在callback中,我可以检索用户ID,但是我想将此ID存储在应用程序的内存中以供进一步使用。

谢谢。

你可以在AppDelegate存储userId


使用以下代码在AppDelegate.h声明一个userId属性:

 @property (nonatomic, strong) NSString *userId 

然后用下面的代码在AppDelegate.m进行合成:

 @synthesize userId; 

然后,您可以在应用程序的任何地方使用userId 。 在要使用userId的类中为AppDelegate添加一个导入,如下所示:

 #import "AppDelegate.h" 

要检索userId使用以下代码:

 AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; NSString *userId = [appDelegate userId]; 

并设置userId使用下面的代码:

 AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; [appDelegate setUserId:YouValueRetrievedByInternetOrWhateverYouWant]; 

有一个会话类作为一个单身人士,可以用一个静态方法访问。

要做到这一点,你可以添加一个静态方法

 + (Session *)sharedInstace { static Session *session; if (!session) session = [Session new]; // there are more proper ways to instantiate a singleton class, not gonna get into it now return session. } 

在那个类中.h你应该添加一个NSString(或者你select的一个类),你可以从[Session sharedInstance].userID