#import <Foundation/Foundation.h>
// 帮助类,系统记住上回登录的用户名,实现自动登录功能
@class MyPerson;
@interface FileHandle : NSObject
// 单例
+ (FileHandle *)shareInstance;
// 同步
- (void)synchronize;
// 设置用户信息
- (void)setLoginState:(BOOL)isLogin;
- (void)setUsername:(NSString *)username;
- (void)setPassword:(NSString *)password;
- (void)setEmail:(NSString *)email;
- (void)setheadIcon:(NSString *)iconUrl;
// 删除用户
- (void)deleteUser;
//获取用户信息
- (BOOL)loginState;
- (NSString *)username;
- (NSString *)password;
- (NSString *)emailAddress;
- (NSString *)headIcon;
- (MyPerson *)person;
// caches路径
- (NSString *)cachesPath;
// 数据库存储路径
- (NSString *)databaseFilePath:(NSString *)databaseName;
// 计算文件大小
- (float)fileSize;
// 清除缓存
- (void)cleanSaveImages;
@end
#import "FileHandle.h"
#import "MyPerson.h"@implementation FileHandle
// 单例
+ (FileHandle *)shareInstance {
static FileHandle *helper = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
helper = [[FileHandle alloc] init];
});
return helper;
}
// 同步
- (void)synchronize {
[[NSUserDefaults standardUserDefaults] synchronize];
}
// 设置用户信息
// 用户是否登录
- (void)setLoginState:(BOOL)isLogin {
[[NSUserDefaults standardUserDefaults] setBool:isLogin forKey:TLoginState];
}
// 用户名
- (void)setUsername:(NSString *)username {
[[NSUserDefaults standardUserDefaults] setObject:username forKey:TUserName];
}
// 用户密码
- (void)setPassword:(NSString *)password {
[[NSUserDefaults standardUserDefaults] setObject:password forKey:TPassword];
}
// 用户emailed
- (void)setEmail:(NSString *)email {
[[NSUserDefaults standardUserDefaults] setObject:email forKey:TEmailAddress];
}
// 用户头像
- (void)setheadIcon:(NSString *)iconUrl {
[[NSUserDefaults standardUserDefaults] setObject:iconUrl forKey:THeadIcon];
}
// 删除用户,也就是退出登录
- (void)deleteUser{
NSUserDefaults *userDefatluts = [NSUserDefaults standardUserDefaults];
NSDictionary *dictionary = [userDefatluts dictionaryRepresentation];
for(NSString* key in [dictionary allKeys]){
[userDefatluts removeObjectForKey:key];
[userDefatluts synchronize];
}
}
//获取用户信息
- (BOOL)loginState {
return [[NSUserDefaults standardUserDefaults] boolForKey:TLoginState];
}
- (NSString *)username {
return [[NSUserDefaults standardUserDefaults] objectForKey:TUserName];
}
- (NSString *)password {
return [[NSUserDefaults standardUserDefaults] objectForKey:TPassword];
}
- (NSString *)emailAddress {
return [[NSUserDefaults standardUserDefaults] objectForKey:TEmailAddress];
}
- (NSString *)headIcon {
return [[NSUserDefaults standardUserDefaults] objectForKey:THeadIcon];
}
// 获取用户
- (MyPerson *)person {
MyPerson * user = [[MyPerson alloc] init];
user.username = [self username];
user.password = [self password];
user.emailAddress = [self emailAddress];
user.isLogin = YES;
return user;
}
// 计算单个文件的大小
-(float)fileSizeAtPath:(NSString*)filePath{
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL isExist = [fileManager fileExistsAtPath:filePath];
if(isExist){
long long fileSize=[[fileManager attributesOfItemAtPath:filePath error:nil]fileSize];
return fileSize / 1024.0 / 1024.0;
}else{
return 0;
}
}
// 计算缓存目录大小
- (float)fileSize {
// NSString *bookImageFilePath = [self saveImageFilePath];
//
// NSFileManager *fileManager = [NSFileManager defaultManager];
//
// BOOL isExist = [fileManager fileExistsAtPath:bookImageFilePath];
//
// if(isExist){
//
// NSArray *childFileArray = [fileManager subpathsAtPath:bookImageFilePath];
//
// float folderSize = 0;
//
// for (NSString *fileName in childFileArray){
//
// NSString *fileAbsolutePath =[bookImageFilePath stringByAppendingPathComponent:fileName];
//
// folderSize += [self fileSizeAtPath:fileAbsolutePath];
//
// }
//
// folderSize += [[SDImageCache sharedImageCache] getSize] / 1024.0 / 1024.0;
//
// return folderSize;
//
// }
//
return ([[SDImageCache sharedImageCache] getSize] / 1024.0 / 1024.0);
}
// 清除缓存(清除sdWebImage的缓存)
- (void)cleanSaveImages {
SDWebImageManager *manger = [SDWebImageManager sharedManager];
[manger cancelAll];
[manger.imageCache clearDisk];
[manger.imageCache clearMemory];
}
// **************************************************************
//cache路径
- (NSString *)cachesPath
{
return [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
}
// **************************************************************
// 数据库存储路径
- (NSString *)databaseFilePath:(NSString *)databaseName
{
return [[self cachesPath] stringByAppendingPathComponent:databaseName];
}
@end