https://blog.csdn.net/u010105969/article/details/79152984 之前看了一篇博客讲的是Realm数据库。...博客中包含了Realm数据库的下载地址、配置、使用以及如何查看数据库中的数据,个人感觉还是不错的。...1.存储到Realm数据库中类的创建: 我们创建的类需要继承自RLMObject,其他的就和创建普通的OC类一样了。
xcdatamodelId扩展名的文件,该文件可以使用图形化的方式编辑数据 模型,在该文件中包含了Entities、Properties、Attributes、Relationships 4 个概念,和关系型数据库有很大的相似性
FMDB是一个轻量级的数据库,用于将网络资源存储在本地。项目中使用 ARC 还是 MRC,对使用 FMDB 都没有任何影响,FMDB 会在编译项目时自动匹配。...一:FMDB优点 1.使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码 2.对比苹果自带的Core Data框架,更加轻量级和灵活 3.提供了多线程安全的数据库操作方法,有效地防止数据混乱 二:将...Phases->Link Binary With Libraries,然后点击+号引用该动态库) 三:FMDB主要的核心类: 1.FMDatabase 一个FMDatabase对象就代表一个单独的SQLite数据库...四:FMDB的增删改查 通常对数据库的操作,我们一般称为CURD,即对表进行创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作。...对数据库中存储的每一个值都有一个类型 1. NULL 这个值为空值 2. INTEGER 值被标识为整数,依据值的大小可以依次被存储1~8个字节 3. REAL 所有值都是浮动的数值 4.
获得存放数据库文件的沙盒地址。 ...,如果不存在,创建数据库 if(!...db){ [selfcreatDatabase]; } //判断数据库是否已经打开,如果没有打开,提示失败 if(!...[dbopen]){ NSLog(@"数据库打开失败"); return; } //为数据库设置缓存,提高查询效率...[dbsetShouldCacheStatements:YES]; //判断数据库中是否已经存在这个表,如果不存在则创建该表 if(!
数据库 FMDB - 多线程FMDatabaseQueue实例,FMDB数据库的使用演示和封装工具类,基于fmdb的基本操作 通过fmdb进行的数据库的基本操作(增删改查)查找是使用UISearchBar...realm-cocoa - Realm是一个真正为移动设备打造的数据库,同时支持Objective-C和Swfit.Realm宣称其相比Sqlite,在移动设备上有着更好的性能表现,官方中文 ,iOS...RealmIncrementalStore.swift - RealmIncrementalStore.swift:集Realm数据库和CoreData对象模型两者优势的Realm数据库访问类。...官方教程,加密你的SQLite - 各种sqlite数据库加密介绍 。SQLCipherDemo下载 。...YYCache - 高性能的iOS缓存框架。 RuntimeDemo - 运行时自动归档/解档,源码分析。 Cache.swift - 一款简单,易用的缓存库。
2、Realm数据库 2.1、概述 Realm 是一个跨平台的移动数据库引擎,2014年7月发布,准确来说,它是专门为移动应用所设计的数据持久化解决方案之一。...2.2、特点 Realm有如下特点: 跨平台:现在绝大多数的应用开发并不仅仅只在iOS平台上进行开发,还要兼顾到 Android平台的开发。...为两个平台设计不同的数据库是愚蠢的,而使用 Realm 数据库, iOS和Android 无需考虑内部数据的架构,调用Realm提供的API 就可以完成数据的交换,实现“一个数据库,两个平台无缝衔接 ”...可视化:Realm 还提供了一个轻量级的数据库查看工具,借助这个工具,开发者可以查看数据库当中的内容,执行简单的插入和删除数据的操作。...Realm 会自行检测新增和需要移除的属性,然后自动更新硬盘上的数据库架构 } }; // 告诉 Realm 为默认的 Realm 数据库使用这个新的配置对象 [RLMRealmConfiguration
前言 笔者在今年毕业的时候,为了应付学校的毕业设计,因此做了一款基于Realm数据库的记账软件。现在毕业后,稍微闲下来了,所以打算将整个项目的核心实现步骤记录下来,供大家学习学习。...使用到的框架 框架名 说明 Realm 不用写sql语句,即可完成增删查改,移动数据库的新皇者 Charts 非常强大的图表库 Mansory Auto布局库 SVProgressHUD 提示框 FSCalendar...项目的关键点在于对Realm数据库的增删查改。接下来会按照记录,时间线,钱包,报表模块进行说明。等不及的小伙伴,可以直接上我的github看源码
前言:最近ChinaDaily项目需要迭代一个新版本,在这个版本中CoreData数据库模型上有新增表、实体字段的增加,那么在用户覆盖安装程序时就必须要进行CoreData数据库的版本升级和旧数据迁移,...接下来在我之前写的 iOS CoreData (一) 增删改查 示例基础上进行演示:1、新建一个版本的数据库模型Model2: 选中Model.xcdatamodeld文件,选择菜单editor->Add...Model Version 取名为:Model2.xcdatamodel,然后就可以发现Model.xcdatamodeld目录下有两个版本的数据库模型 [add model version.gif...options,打开数据库升级迁移的开关。...ArgumentsPassed On Launch中添加下面两个选项,如图: (1)-com.apple.CoreData.SQLDebug (2)1 [CoreData调试.png] 之前相关文章:iOS
前言:最近ChinaDaily项目需要迭代一个新版本,在这个版本中CoreData数据库模型上有新增表、实体字段的增加,那么在用户覆盖安装程序时就必须要进行CoreData数据库的版本升级和旧数据迁移...接下来在我之前写的 iOS CoreData (一) 增删改查 示例基础上进行演示: 1、新建一个版本的数据库模型Model2: 选中Model.xcdatamodeld文件,选择菜单editor->...Add Model Version 取名为:Model2.xcdatamodel,然后就可以发现Model.xcdatamodeld目录下有两个版本的数据库模型 ?...修改新数据模型Model2.gif 4、设置数据库参数options,打开数据库升级迁移的开关。...CoreData调试.png 之前相关文章:iOS CoreData (一) 增删改查
3.3 数据库缓存性能进行优化 3.4 测试验证 前言 一般通过以下两种方式使用磁盘缓存: ·文件缓存 ·数据库缓存(一般是指在SQLite数据库) 对于写入性能,SQLite数据库优于文件缓存;对于读取性能...当每页缓存容量在8192B到16384B之间时,数据库拥有最好的读写性能。 如果单条数据小于100KB时,则从SQLite数据库中读取数据速度更快;单条数据大于100KB时,则从文件中读取速度更快。...I 沙盒 我们都知道,iOS系统为了保证系统的安全性,采用了沙盒机制(即每个应用程序都会有自己的一个独立存储空间)。 其原理是通过重定向技术,把应用程序生成和修改的文件重定向到自身文件夹中。...因此,在iOS应用程序里,磁盘缓存的数据一般都存储在沙盒中。...而Preferences文件夹保存的是应用程序的偏好设置,即iOS系统的设置应用会从该目录中读取偏好设置信息。因此,该目录一般不用于存储应用程序产生的数据。
, assign) BOOL isIncome; @end RLM_ARRAY_TYPE(MPCategoryModel) 那么,对应地,我们在程序第一次启动时,从本地的plist文件读取数据,写入数据库...这样一来,我们就可以方便的从数据库进行查询了。
iOS开发的基本上都知道fmdb,自从用了fmdb之后都忘记了原生的sqlite3操作了(fmdb太好用了)。...SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。...SQLite是一个轻量级的关系数据库。...SQLite最初的设计目标是用于嵌入式系统,TA占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,目前应用于Android、iOS、Windows Phone等智能手机。...SQLite支持的数据类型 类型 说明 INTEGER 有符号整型 REAL 浮点型 TEXT 字符串类型,采用UTF-8 UTF-16编码,在iOS中注意转换 BLOB 大二进制对象类型,能够存放任何二进制数据
一:介绍 React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,目前支持iOS...另外,这些博文都是来源于我日常开发中的技术总结,在时间允许的情况下,我会针对技术点分别分享iOS、Android两个版本,如果有其他技术点需要,可在文章后留言,我会尽全力帮助大家。...,适合使用那个数据库方法 创建数据库DataBase.db 打开数据库 执行sql语句 JavaScript调用浏览器方法 三:实现源码分析 1....判断数据库语句,适合使用那个数据库方法 由于数据库查询语句中的查询参数,需要通过接口传入,并不是和sql语句一起传入,所以需要进行拼接,这就需要用到数据库查询方法querySQLite,因为查询语句中包含...打开数据库 判断数据库表是否已创建,如果创建成功,或者已经存在数据表,即可打开数据库,源码如下: if (self.db) { if ([self.db open]) {
前言 分享iOS开发中遇到的问题,和相关的一些思考,本次内容包括:UIKit的iOS11问题、数据库问题定位、线上Crash处理、内存问题分析。...正文 1、iOS 11的UITabbar的高度异常 问题描述:iOS 11+iPhone,在横竖屏切换的场景下,UITabbarViewController的底部栏UITabbar会出现高度异常。...问题定位:CoreData数据库迁移使用的是系统提供的自动迁移,经过本地测试,确实存在数据库较大的情况下,升级时间较长的问题。 那么如何确定数据库是哪些表是瓶颈?...用户的数据库比较大,不可能进行整个数据库上传操作;而CoreData并不支持获取某个表的大小。 可以采取一种方案:用户上报数据库每张表的行数,本地通过工具求出每张表的平均值,用以估算每张表的大小。...后记: 该问题只出现在iOS 8。在iOS 11的机型上,通过调试我们可以获取到self.data=...这一行在执行时,关于self的内存引用情况: ?
nil) { handle = [[DataBaseHandle alloc]init]; } } return handle; } 写一个私有的方法,返回数据库的路径...stringByAppendingPathComponent:@"db.sqlite"]; } 创建一个Person表格 //创建一个Person表格 (void)creatPersonTable{ //初始化数据库对象...self.db = [FMDatabase databaseWithPath: [self dbpath]]; //打开数据库 BOOL isOpen = [self.db open];...p.age = @"20"; //调用插入person的方法 // [[DataBaseHandle shareDateBaseHandle]insertPersonTable:p]; //接收数据库返回的查询结果
工程中经常需要使用数据库来保存一些数据在本地手机上,iOS是自带Sqlite的,但是常用的还是第三方的类库——FMDB。...这里说一说基本的使用方法 对于数据库来说,最开始的当然是建立数据库,在使用数据库前,最好先检查一下数据库是否存在,如果存在,则把数据库实例指向已存在的那个数据库,如果不存在,则创建: //SqlTest.h...self.db = [FMDatabase databaseWithPath:dbFilePath]; } 在找到或创建数据库后,打开一下数据库,如果打开失败,则提示并处理...,打开后,为数据库设置缓存来提高查询效率: if (!...:YES];//为数据库设置缓存,提高查询效率 接下来的工作是建表,这里示例建立一个存储用户名和密码的表:同样的,在使用时,先检查数据库中是否有该表,有则跳过建表过程,没有则建表: if (!
---- 二、在 iOS 工程中的使用 传统统计功能(打点): 在工程中产品经理往往都会有统计用户行为的需求,通常第三方服务提供商或多数公司常规的做法是按照标识位(不同事件 ID/eventID)来进行用户行为事件统计
和iOS整合 和iOS整合的意思是给用户一种吸引人的、愉快的体验来让用户在平台上宾至如归;它不是说要创建一个看起来像复制内置的app一样的app。...将你的独特的app和平台整合的最好方式是理解促进iOS的那些主旨——在Designing for iOS中有这些主旨的描述——并且思考你的app怎样表达它们。...不要混合不同iOS版本下的UI元素风格。你不会希望通过显示看起来像在不同于当前设备运行的iOS系统版本的UI元素来让用户感到迷惑。 一般来说,不要创建一个自定义的UI元素来展现标准的动作。...淡化文件和文档处理 iOS app可以帮助人们创建和操作文件,但这不意味着人们需要思考iOS设备上的文件系统。...利用iOS技术 iOS提供了丰富的技术来用用户期待的方式支持常见的任务和情景。这个期待意味着,将系统支持的技术整合进你的app总是会比设计一个自定义的方式要好。
self.aniView.frame = CGRectMake(200, 80, 100, 100); // 提交动画执行 [UIView commitAnimations]; Block用法 // iOS4...80, 100, 100); } completion:^(BOOL finished) { NSLog(@"动画执行完了"); }]; Spring动画(带弹簧效果) iOS7...以后引入的Spring动画,iOS8的时候Apple开放的Spring动画的API,开发者可以借助这个API很简单的实现带有弹簧的动画效果了。...// 动画执行完后的回调 }]; Core Animation动画 Core Animation翻译过来就是核心动画,它是iOS
它包含三个模块: WCDB-iOS/Mac WCDB-Android 数据库损坏修复工具WCDBRepair 目前正在筹备开源中。...背景 ---- 对于iOS开发者来说,数据库的技术选型一直是个令人头痛的问题。 由于Apple提供的CoreData框架差强人意,使得开发者们纷纷将目光投向开源社区,寻找更好的存储方案。 ...对于iOS开发者,key-value的实现直接易懂,可以像使用NSDictionary一样使用Realm。并且ORM彻底,省去了拼装Object的过程。...于是,我们造了这个“轮子” - WCDB-iOS/Mac WCDB-iOS/Mac ---- WCDB-iOS/Mac(以下简称WCDB,均指代WCDB的iOS/Mac版本),是一个基于SQLite封装的...可参考我们分享的另一篇文章《微信iOS SQLite源码优化实践》 损坏修复:数据库损坏一直是个难题,WCDB内置了我们自研的修复工具WCDBRepair。
领取专属 10元无门槛券
手把手带您无忧上云