IOS 轻量级数据持久化 DataLite
开发的过程中我们经常要保存一些配置信息,一般简单的是用 NSUserDefaults
[[NSUserDefaults standardUserDefaults] objectForKey:key];
[[NSUserDefaults standardUserDefaults] setObject:aObject forKey:key];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
我将这些进行了一些简单的封装,使得用起来更加方便:
// 在.h文件中声明一个变量
XY_DataLite_string(DataLiteTitle) // 在.m文件实现一个变量
DEF_DataLite_object_autoSynchronize(DataLiteTitle)
使用的时候如下:
self.DataLiteTitle = nil;
NSLogD(@"%@", self.DataLiteTitle);
self.DataLiteTitle = @"test1";
NSLogD(@"%@", self.DataLiteTitle);
---------------------------------------------------------------------------------------
#define XY_DataLite_string( __name ) \
-(void) set##__name:(NSString *)aObject; \
-(id) __name; // 注意: __name 首字母需要大写
#define DEF_DataLite_object_autoSynchronize( __name ) \
-(void) set##__name:(id)aObject{ \
[DataLite writeObject:aObject forKey:NSStringify( __name ) synchronize:YES]; \
} \
-(id) __name{ \
return [DataLite readObjectForKey:NSStringify( __name )]; \
}
具体细节请看:
https://github.com/uxyheaven/XYQuickDevelop
IOS 轻量级数据持久化 DataLite的更多相关文章
- iOS之数据持久化方案
概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) ...
- iOS的数据持久化
所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) pr ...
- IOS - 本地数据持久化
转:相对复杂的App仅靠内存的数据肯定无法满足,数据写磁盘作持久化存储是几乎每个客户端软件都需要做的.简单如“是否第一次打开”的BOOL值,大 到游戏的进度和状态等数据,都需要进行本地持久化存储.这些 ...
- iOS - OC 数据持久化
1.Sandbox 沙箱 iOS 为每个应用提供了独立的文件空间,一个应用只能直接访问为本应用分配的文件目录,不可以访问其他目录,每个应用自己独立的访问空间被称为该应用的沙盒.也就是说,一个应用与文件 ...
- iOS - Swift 数据持久化
1.Sandbox 沙箱 iOS 为每个应用提供了独立的文件空间,一个应用只能直接访问为本应用分配的文件目录,不可以访问其他目录,每个应用自己独立的访问空间被称为该应用的沙盒.也就是说,一个应用与文件 ...
- IOS开发--数据持久化篇之文件存储(一)
前言:个人觉得开发人员最大的悲哀莫过于懂得使用却不明白其中的原理.在代码之前我觉得还是有必要简单阐述下相关的一些知识点. 因为文章或深或浅总有适合的人群.若有朋友发现了其中不正确的观点还望多多指出,不 ...
- QF——iOS中数据持久化的几种方式
数据持久化的几种方式: 一.属性列表文件: .plist文件是种XML文件.数组,字典都可以和它互相转换.数组和字典可以写入本地变成plist文件.也可以读取本地plist文件,生成数组或字典. 读取 ...
- iOS中 数据持久化 UI高级_17
数据持久化的本质就是把数据由内写到本地(硬盘中),在iOS指将数据写到沙盒文件夹下: 沙盒机制:指的就是采用沙盒文件夹的形式管理应用程序的本地文件,而且沙盒文件夹的名字是随机分配的,采用十六进制方法命 ...
- ios之数据持久化
9.1 数据持久化概述 iOS中可以有四种持久化数据的方式: 属性列表.对象归档.SQLite3和Core Data 9.2 iOS应用程序目录结构 iOS应用程序运行在Mac os模拟器时候,有一下 ...
随机推荐
- UASCO Zero Sum DFS + Stack
给一个N 表示1 2 3 ...N 求出所有 zero sum的情况 [简单Dfs 即可] 运算结果的时候我使用了一个stack... 比如N = 7 那么要求输出 1+2-3+4-5-6+7 1+2 ...
- 我也来说说C#中的异步:async/await
序 最近看了一些园友们写的有关于异步的文章,受益匪浅,写这篇文章的目的是想把自己之前看到的文章做一个总结,同时也希望通过更加通俗易懂的语言让大家了解"异步"编程. 1:什么是异步 ...
- linux c 得到文件大小
#include <sys/stat.h> unsigned long get_file_size(const char *path) { unsigned long filesize = ...
- CSipSimple最新版本号(二)--加入视频功能
前面我们编译好了最新版本号的CSipSimple,并且測试已经能够打电话了.如今要把视频功能加上去. 不知道怎么编译的,能够看我的上一篇博文:CSipSimple最新版本号 我们先来看一下之前的项目是 ...
- JQuery - 改变css样式
jQuery提供css()的方法来实现嵌入式改变元素样式,css()方法在使用上具有多样性.其中一种接受两个输入参数:样式属性和样式值,它们之间用逗号分开.比如我们要改变链接颜色,我们可以使用下面的代 ...
- 快速傅里叶变换应用之二 hdu 4609 3-idiots
快速傅里叶变化有不同的应用场景,hdu4609就比较有意思.题目要求是给n个线段,随机从中选取三个,组成三角形的概率. 初始实在没发现这个怎么和FFT联系起来,后来看了下别人的题解才突然想起来:组合计 ...
- java io学习记录(路径分隔符)
java路径分隔符(路径表示) path="E:\\xp\\test\\2.jpg"; path="E:/xp/test/2.jpg"; path=" ...
- 解说cocos2d-x几种画图方法的用法与思考
CCRenderTexture 自己的理解 CCRenderTexture类似一张空白的“画布“,用户通过自定义笔刷(CCSprite*),在touch事件中把笔刷的移动痕迹“记录”起来,从而“画”出 ...
- Android中通过耳机按键控制音乐播放的实现
今天在研究Android中实现Android 4.2.2源码中的Music应用的源码,关于通过耳机按键控制音乐播放的实现,有点好奇,就仔细分析了一下源码, 主要由 MediaButtonIntentR ...
- 浅谈初次搭建nginx+php+mysql遇到的问题
先说明下我linux上的环境: nginx + php(5.5.10) + mysql 開始的源代码已经在本地写好,并调试成功(本地的环境是用XAMPP的默认配置).在把代码上传至linux上时,出现 ...