2

这可能是一个非常简单的问题,但我很好奇是否有最佳解决方案。我想知道 quickblox 是否缓存当前用户。如果您熟悉 Parse,我正在寻找一种[PFUser CurrentUser]类型方法。

如果这不存在,那么一旦他们登录到应用程序,从任何 viewController 引用当前用户的最佳方式是什么。(启动时需要登录)。我正在考虑只存储该用户的 ID 以供以后使用(NSUserDefaults 或类似的东西)。

此外,quickblocks 登录是否在应用程序启动之间持续存在?

欢迎任何想法和意见。谢谢

4

1 回答 1

1

没有CurrentUser属性,

我建议使用下一个机制:

1)创建单例

本地存储控制器.h

@interface LocalStorageController : NSObject

+ (instancetype)shared;

@property (nonatomic, strong) QBUUser *qbUser;

@end

本地存储控制器.m

#import "LocalStorageController.h"

@implementation LocalStorageController

@synthesize qbUser = _qbUser;

+ (instancetype)shared
{
    static LocalStorageController *instance = nil;
    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{
        instance = [[LocalStorageController alloc] init];
    });

    return instance;
}

@end

2)登录LoginViewController.m后保存QB用户

@implementation LoginViewController

- (void)login
{
    [QBUsers logInWithUserLogin:@"qbUser1" password:@"qbUser1"  delegate:self];
}

- (void)completedWithResult:(Result *)result{
    if([result isKindOfClass:QBUUserResult.class] && result.success){
        QBUUserResult *res = (QBUUserResult *)result;

        // save user
        [LocalStorageController shared].qbUser = res.user;
    }
}

3)在您的用户的任何地方使用

ViewController1.m

 - (void)doSomething{
    QBUUser *currentUser = [LocalStorageController shared].qbUser;
 }

视图控制器2.m

 - (void)doSomething{
    QBUUser *currentUser = [LocalStorageController shared].qbUser;
 }
于 2013-10-02T09:02:16.743 回答