这可能是一个非常简单的问题,但我很好奇是否有最佳解决方案。我想知道 quickblox 是否缓存当前用户。如果您熟悉 Parse,我正在寻找 [PFUser CurrentUser] 类型的方法。
如果这不存在,那么一旦他们登录到应用程序,从任何 viewController 引用当前用户的最佳方式是什么。 (启动时需要登录)。我正在考虑只存储该用户的 Id 以供以后使用(NSUserDefaults 或类似的东西)。
此外,quickblocks 登录是否在应用启动之间持续存在?
欢迎任何想法和意见。谢谢
Best Answer-推荐答案 strong>
没有 CurrentUser 属性,
我建议使用下一个机制:
1) 创建单例
LocalStorageController.h
@interface LocalStorageController : NSObject
+ (instancetype)shared;
@property (nonatomic, strong) QBUUser *qbUser;
@end
LocalStorageController.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) 登录后保存QB用户
LoginViewController.m
@implementation LoginViewController
- (void)login
{
[QBUsers logInWithUserLogin"qbUser1" password"qbUser1" delegate:self];
}
- (void)completedWithResultResult *)result{
if([result isKindOfClassBUUserResult.class] && result.success){
QBUUserResult *res = (QBUUserResult *)result;
// save user
[LocalStorageController shared].qbUser = res.user;
}
}
3) 在您的用户的任何地方使用
ViewController1.m
- (void)doSomething{
QBUUser *currentUser = [LocalStorageController shared].qbUser;
}
ViewController2.m
- (void)doSomething{
QBUUser *currentUser = [LocalStorageController shared].qbUser;
}
关于android - 在 quickblox 应用程序中引用当前用户,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/19019113/
|