iOS 数据持久化
文章平均质量分 80
番薯大佬
码农一枚
展开
-
iOS 文件操作
ios文件管理 获取文件属性读取文件1、文件的创建- (IBAction)CreateFile{ //对于错误信息 NSError *error; //创建文件管理器 NSFileManager *fileMgr = [NSFileManager defaultManager]; //指向文件目录原创 2015-02-27 15:09:03 · 576 阅读 · 0 评论 -
数据缓存——SQLite关系型数据库的使用(补充)
封装使用代码示例1 .h 文件#import <Foundation/Foundation.h>@interface SQliteManager : NSObject+ (instancetype)shareSQLite;/// 建表/删表/插入数据/更新数据/删除数据 等操作- (BOOL)executeSQLite:(NSString *)sqlString;/...原创 2019-12-07 00:57:14 · 271 阅读 · 0 评论 -
APP缓存文件视图控制器
https://github.com/potato512/SYCacheFileViewController缓存文件视图控制器1、显示指定目录下的子目录及文件(1)子目录可以继续点击进入下级子目录,及显示下级文件(2)文件可以点击查看,根据不格式进行展示,如音频播放、视频播放、doc/excel/ppt/pdf/txt等打开2、目录与文件的删除操作(1)左滑出现删除按钮原创 2017-06-30 17:56:42 · 353 阅读 · 0 评论 -
iOSNSFileManager管理目录路径(1)
iphone沙盒模型的有四个文件夹,分别是什么?永久数据存储一般放在什么位置?得到模拟器的路径的简单方式是什么? 一、四个文件夹1、Documents目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。即手动保存的文件都会被保存在documents文件里。2、AppName.app目录:这是应用程序的程序包目录,包含应用程序的本身...原创 2015-02-27 14:33:55 · 724 阅读 · 0 评论 -
iOS NSFileManager管理目录路径(3)——文件大小
计算文件大小,既可以计算指定文件路径的某个文件大小,也可以计算指定目录的大小,该目录可能包含多个子目录及文件。1、计算单个文件的大小dobule+ (BOOL)isFileExists:(NSString *)filepath{ return [[NSFileManager defaultManager] fileExistsAtPath:filepath];}+ (NSD原创 2017-06-29 17:07:37 · 1510 阅读 · 0 评论 -
iOS NSFileHandle的使用
读取数据时,读取的是NSData,后再转换成NSString,当出现转换NSString为nil时,是因为NSData为不完全的。NNString的中文字符1位对应转换成NSData时是3位。所以在指定位置,指定长度时,需要以NSData来计算。/** * 写入内容到指定位置 * * @param filePath 文件路径(如:xxx/xx/.../xx原创 2017-07-02 23:10:58 · 522 阅读 · 0 评论 -
文件路径判断是文件还是文件夹
方法1+ (BOOL)isDirectory:(NSString *)filePath{ BOOL isDirectory = NO; [[NSFileManager defaultManager] fileExistsAtPath:filePath isDirectory:&isDirectory]; return isDirectory;}方法2+ (B原创 2017-07-03 01:08:13 · 2087 阅读 · 0 评论 -
指定文件路径下的当前层级的所有文件夹
+ (NSArray *)getDirectorysWithFilePath:(NSString *)filePath{ if ([self isFileExists:filePath]) { // NSURL *urlDirectory = [[NSBundle mainBundle] bundleURL]; NSURL *urlDirector原创 2017-07-03 01:09:05 · 822 阅读 · 0 评论 -
指定文件路径下的所有层级的文件,包括子文件夹下的文件
+ (NSArray *)getFilesWithFilePath:(NSString *)filePath{ if ([self isFileExists:filePath]) { // NSURL *urlFile = [[NSBundle mainBundle] bundleURL]; NSURL *urlFile = [NSURL file原创 2017-07-03 01:10:01 · 1032 阅读 · 0 评论 -
数据缓存——FMDB的使用
FMDB的使用 https://github.com/ccgus/fmdb FMDB是iOS平台的建立在SQLite数据库框架,以objective-c的方式封装了SQLite的C语言API。FMDB使用时更加面向对象,省去了很多麻烦、冗余的C语言代码;提供了多线程安全的数据库操作方法。 FMDB有三个主要的类1、FMDatabase:表示一个单独的SQLite数据原创 2016-04-15 23:13:18 · 1496 阅读 · 0 评论 -
数据缓存——LKDBHelper的使用
LKDBHelper的使用 https://github.com/li6185377/LKDBHelper-SQLite-ORM LKDBHelper可以不设置sql语句的情况下,仅使用自定义Model就可以全自动的进行数据表的创建,及数据的插入、查询、更新、删除等操作。支持 NSArray,NSDictionary, ModelClass, NSNumber, NSStrin原创 2016-04-15 23:21:19 · 8190 阅读 · 0 评论 -
数据缓存——SQLite关系型数据库的使用
SQLite关系型数据库的使用 数据库(Database): 存放数据的仓库, 存放的是一张的表, 特别像Excel, Numbers, 都以表格的形式存放数据, 可以创建多张表。 常见的数据库: sqlite, MySQL, SQLServer, Oracle, Access。使用数据库,主要是因为文件读写和归档读取数据需要一次把数据全部读出来, 占用内存开销大;其次是数据库原创 2016-04-15 23:30:39 · 6273 阅读 · 0 评论 -
图片保存到指定沙盒目录
代码示例1、图片UIImage转二进制数据NSDataUIImage *image = [UIImage imageNamed:@"android"];NSData *data = UIImageJPEGRepresentation(image, 1.0);2、获取沙盒目录documentNSArray *paths = NSSearchPathForDirectoriesInDoma...原创 2019-01-15 14:48:01 · 1029 阅读 · 0 评论 -
iOS NSFileManager管理目录路径(2)
使用NSFileManager进行目录的操作,如判断目录是否存在、新建一个目录、目录的复制、目录的移动,以及目录的删除等。代码示例:1、判断目录是否存在/// 目录是否存在+ (BOOL)isDirectoryExit:(NSString *)dir{ BOOL isResult = [[NSFileManager defaultManager] fileExistsAtP原创 2017-01-20 10:43:34 · 651 阅读 · 0 评论 -
数据缓存——CoreData的使用
CoreData的使用 1、使用到的对象(1)NSManagedObjectContext操作数据库的上下文(数据库,获取与存储),即负责应用与数据库之间的交互作用:插入数据、查询数据、删除数据(2)NSManagedObjectModel 数据库中所有表格和他们的联系(数据模型),即代表CoreData模型文件,相 当于实体 作用:添加实体的属性与类型设置,建原创 2016-04-15 23:11:21 · 4828 阅读 · 0 评论 -
大量数据表的优化方案
1、对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库。备注、描述、评论之类的可以设置原创 2016-05-19 17:33:26 · 4887 阅读 · 0 评论 -
iOS SQLite
1、基本的数据库操作1-1、加libsqlite3.0.dylib库, #import "/usr/include/sqlite3.h" 1打开数据库 int sqlite3_open(const char *filename, /* Database filename (UTF-8) */sqlite3 **ppDb /* OUT: SQLite db handle转载 2014-05-17 16:42:10 · 658 阅读 · 0 评论 -
iOS数据库离线缓存思路和网络层封装——网络请求基类封装
.h文件#import #import "NSObject+JTObjectMapping.h"#import "MKNetworkEngine.h"#import "SYNetworkCache.h"@interface BaseModel :NSObject///带缓存的网络请求(自定义缓存类型及缓存时间)原创 2016-04-16 00:11:16 · 1146 阅读 · 0 评论 -
iOS数据库离线缓存思路和网络层封装——数据缓存机制Model封装
.h文件#import #import /// 缓存策略typedef NS_ENUM(NSInteger, NetworkCacheType){ /// 无视缓存,总是请求最新的数据 NetworkCacheTypeAlways = 1, /// 缓存过期时,才请求最新的数据原创 2016-04-16 00:03:28 · 1711 阅读 · 0 评论 -
iOS数据库离线缓存思路和网络层封装——数据缓存操作封装
使用说明 1关联第三方库 1-1 FMDB 1-2 LKDBHelper.h文件#import #import "LKDBHelper.h"@interface SYFMDBManager : NSObject/// 单例+ (SYFMDBManager *)shareFMDB;原创 2016-04-16 00:01:41 · 1123 阅读 · 0 评论 -
数据缓存——Plist文件的使用
Plist文件的使用 在做iOS开发时,有时候会用到plist文件进行用户设置等较小信息的存储。plist(Property List)是属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist,因此通常被称为plist文件。plist文件是xml格式的。plist文件在iOS开发中属于Write写入方式来存储信息。plist文件支持的数据类型原创 2016-04-15 23:27:13 · 2461 阅读 · 0 评论 -
数据缓存——NSUserDefault的使用
NSUserDefault的使用 NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,配置数据等等。默认系统允许应用程序自定义它的行为去迎合用户的喜好。你可以在程序运行的时候从用户默认的数据库中读取程序的设置。同时NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作。可以通过调用synchronize方法来使内存中的缓存与用户默认原创 2016-04-15 23:23:51 · 2349 阅读 · 0 评论 -
数据缓存——Keychain的使用
Keychain的使用 iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储。用于储存一些私密信息,比如密码、证书等等,Keychain里保存的信息不会因App被删除而丢失,在用户重新安装App后依然有效。同样也适用于应用之间数据共享。我们可以把KeyChain理解为一个Dictionary,所有数原创 2016-04-15 23:18:29 · 2859 阅读 · 0 评论 -
数据缓存——NSKeyedArchiver归档(NSCoding)
NSKeyedArchiver归档(NSCoding) 归档是一种很常用的文件储存方法,几乎任何类型的对象都能够被归档储存(实际上是一种文件保存的形式),特别是能够支持自定义类型对象。 一、实现1、要使的需要存储的对象实现NSCoding协议,从而使他自己满足写二进制数据的能力。即是自己具有序列化的能力。2、使用NSCoder的子类方法,实现二进制数据的动作,如读或者写。即原创 2016-04-15 23:06:43 · 1619 阅读 · 0 评论 -
iOS数据库离线缓存思路和网络层封装——原理
数据展示型的页面做离线缓存可以有更好的用户体验,用户在离线环境下仍然可以获取一些数据,这里的数据缓存首选肯定是SQLite,轻量级,对数据的存储读取相对于其他几种方式有优势,这里对AFN的封装没有涉及太多业务逻辑层面的需求,主要还是对一些方法再次封装方便使用,解除项目对第三方的耦合性,能够简单的快速的更换底层使用的网络请求代码。这篇主要写离线缓存思路,对AFN的封装只做简单的介绍。关于XLNe原创 2016-04-09 18:54:19 · 1189 阅读 · 0 评论 -
iOS sqlite的使用
1、基本的数据库操作(1)加libsqlite3.0.dylib库, #import "/usr/include/sqlite3.h"(2)打开数据库int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3转载 2015-03-01 09:26:21 · 555 阅读 · 0 评论 -
Plist文件操作
为了便于用户保存较小的数据信息,可以使用plist文件进行存取操作,进行操作前,用户需要先创建自己需要的plist文件。plisty 特别注意:对于项目自动生成的plist文件,用户只能进行读取,不能进行修改操作(修改操作是必须知道路径,以便于保存的,而且数据必须是可变的,但系统Plist文件不是知道路径,内容字典也是不可变的);而对于用户自己创建的plist文件,则可原创 2014-06-14 20:07:57 · 680 阅读 · 0 评论 -
NSUderDefault的使用
在APP开发中,需要本地存储数据时,或许会用到NSUserDefault,为了便于原创 2014-06-04 12:06:51 · 774 阅读 · 0 评论 -
ASIHTTPRequest的使用——网络请求缓存
///////////////////////////////////////////////////////////////////////////.h文件#import #import "ASIFormDataRequest.h"@protocol NetWorkdelegate - (void)NetWorkwithConnectId:原创 2014-05-16 09:15:25 · 754 阅读 · 0 评论