【代码笔记】缓存路径操作类
2016-03-21 09:15
295 查看
一,代码。
AppDelegate.h
AppDelegate.m
AppDelegate.h
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> { NSMutableDictionary *cachedData; } @property (strong, nonatomic) UIWindow *window; @end
AppDelegate.m
#import "AppDelegate.h" #import "RootViewController.h" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. RootViewController *rootVC=[[RootViewController alloc]init]; UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:rootVC]; self.window.rootViewController=nav; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES; } #pragma mark - 缓存 - (void)initCachedCapacity; { if (!cachedData) { cachedData = [[NSMutableDictionary alloc] init]; } [cachedData removeAllObjects]; [self readDataFromFile:@"cachedData" toTheData:cachedData]; NSLog(@"initCachedCapacity"); } - (void)saveCachedCapacity { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [self saveDataToFile:cachedData theFileName:@"cachedData"]; [userDefaults synchronize]; NSLog(@"saveCachedCapacity"); } #pragma mark - 缓存路径操作类 // 返回文件路径 - (NSString *)dataFilePath:(NSString *)fileName { NSString *homeDirectory= [NSHomeDirectory() stringByAppendingPathComponent:@"tmp"]; NSString *filePhyPath=[homeDirectory stringByAppendingPathComponent:fileName]; return filePhyPath; } // 存储数据到文件 - (void)saveDataToFile:(id)paramData theFileName:(NSString *)paramName{ NSString *savePath=[self dataFilePath:paramName]; if ([paramData isKindOfClass:[NSMutableDictionary class]]) { [paramData writeToFile: savePath atomically: YES]; return; } if ([paramData isKindOfClass:[NSMutableArray class]]) { [paramData writeToFile: savePath atomically: YES]; } } // 读取数据从文件 - (void)readDataFromFile:(NSString *)fileName toTheData:(id) paramData{ if ([paramData isKindOfClass:[NSMutableDictionary class]]) { NSMutableDictionary* tmp = [[NSMutableDictionary alloc] initWithContentsOfFile:[self dataFilePath:fileName]]; if (tmp&& tmp.count>0) { [paramData addEntriesFromDictionary:tmp]; } return; } if ([paramData isKindOfClass:[NSMutableArray class]]) { NSMutableArray *tmp=[[NSMutableArray alloc] initWithContentsOfFile:[self dataFilePath:fileName]]; if (tmp&& tmp.count>0) { [paramData addObjectsFromArray:tmp]; } return; } } - (void)applicationWillResignActive:(UIApplication *)application { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } - (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } - (void)applicationWillEnterForeground:(UIApplication *)application { // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } - (void)applicationDidBecomeActive:(UIApplication *)application { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - (void)applicationWillTerminate:(UIApplication *)application { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } @end
相关文章推荐
- 安卓开发eclipse无线调试
- jdbc,mybatis,mybatis+spring新的理解
- 【Good Bye 2014E】【贪心 单调栈+线段树】New Year Domino 至少增加多高长度的多米诺骨牌才可推x倒y
- 【Good Bye 2014D】【期望的线性可加 基本元素累计】New Year Santa Network 树上取3点,路径权值之和的期望
- 【Good Bye 2014C】【脑洞】New Year Book Reading 书放一摞依次看 最佳顺序使费用最小
- PTA基础编程 5-15 计算圆周率 (15分)
- Python笔记——类定义
- 【Good Bye 2014B】【Floyd or 并查集】New Year Permutation 全排列有位置交换序列 使得字典序尽可能小
- Laravel 调试利器 —— Laravel Debugbar 扩展包安装及使用教程(转)
- 【Good Bye 2014A】【水题 dfs】New Year Transportation 可否传送到t点
- 35+ 个 Java 代码性能优化总结
- Python 进阶——重访 list
- 关于python文件操作
- Java中句柄初始化的三种方法
- PHP常见数组函数用法小结
- 统计文件内数据 Python
- Java.作业3 看电视1
- 2016年第七届蓝桥杯c/c++省赛B组
- Java 发送邮件
- 是否需要有代码规范