我做了一个登录功能的IOS应用。 我用的是ASIHTTPRequest此检查,如果用户在MySQL数据库中存在。 所有工作正常,但我想通过用户ID槽等viewcontrollers或检索它的应用程序的其他部分。
有人可以把我在正确的方向如何在最佳和最安全的方式做到这一点?
这是我的我做一个POST HTTP请求到PHP脚本的方式:
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"*SOME_URL*"]];
在一个回调,我可以检索用户ID,但我想这个ID存储在应用进一步使用的内存。
谢谢。
您可以存储userId
在AppDelegate
。
声明一个userId
物业AppDelegate.h
用下面的代码:
@property (nonatomic, strong) NSString *userId
然后合成它在AppDelegate.m
用下面的代码:
@synthesize userId;
然后,可以使用userId
在您的应用程序从任何地方。 添加进口的AppDelegate
你要使用的类userId
,如下所示:
#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(或一类你的选择或任何你想要的),你可以在任何地方与访问[Session sharedInstance].userID