0

我做了一个带有登录功能的IOS应用程序。我为此使用 ASIHTTPRequest 来检查用户是否存在于 MySQL 数据库中。一切正常,但我想通过其他视图控制器传递用户 ID 或在应用程序的其他部分检索它。

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

这是我向 PHP 脚本发出 POST HTTP 请求的方式:

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

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

谢谢。

4

2 回答 2

6

您可以存储userIdAppDelegate.


使用以下代码声明一个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];
于 2012-12-04T14:32:01.543 回答
-1

有一个作为单例工作的会话类,可以使用静态方法访问。

为此,您可以添加一个静态方法

+ (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

于 2012-12-04T14:30:15.050 回答