#import <Foundation/Foundation.h>
@class QHAccount;
@interface QHAccountTool : NSObject
/**
* 存储账号信息
*
* @param account <#account description#>
*/
+ (void)saveAccount:(QHAccount *)account;
/**
* 返回账号信息
*
* @return 账号模型(如果账号过期,返回nil);
*/
+ (QHAccount *)account;
@end
//处理账号相关的所有信息:存储账号 验证账号
#define QHAccountPath [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject] stringByAppendingPathComponent:@"account.archive"]
#import "QHAccountTool.h"
#import "QHAccount.h"
@implementation QHAccountTool
//+ (NSString *)path {
//
// NSString *path = ;
// return path;
//}
/**
* 存储账号信息
*/
+ (void)saveAccount:(QHAccount *)account {
//获得账号存储的时间(accessToken的产生时间)
account.created_time = [NSDate date];
//放进document 可以进行备份
//将返回的数据存进沙盒
// NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
#warning 这里的NSString 方法调用出错用的是stringByAppending 路径拼接错误
// NSString *path = [doc stringByAppendingPathComponent:@"account.archive"];
//存进沙盒
//[responseObject writeToFile:path atomically:YES];
//自定义对象的存储必须用NSKeyedArchiver 不在有什么write to file
[NSKeyedArchiver archiveRootObject:account toFile:QHAccountPath];
}
/**
* 返回账号信息
*
* @return 账号模型(如果账号过期,返回nil);
*/
+ (QHAccount *)account {
//加载模型
QHAccount *account = [NSKeyedUnarchiver unarchiveObjectWithFile:QHAccountPath];
/*验证账号是否过期*/
//过期的秒数
long long expires_in = [account.expires_in longLongValue];
//获得过期时间
NSDate *expiresTime = [account.created_time dateByAddingTimeInterval:expires_in];
//获得当前时间
NSDate *now = [NSDate date];
//若果 expiresTime <= now 过期
/**
* {NSOrderedAscending = -1L, 升序右边 > 左边
NSOrderedSame, 一样
NSOrderedDescending}; 降序 右边 < 左边
*/
NSComparisonResult result = [expiresTime compare:now];
if(result != NSOrderedDescending)//过期
{
return nil;
}
QHLog(@"%@ %@",expiresTime,now);
return account;
}
@end