IOS开发:在Core Data中应用使用原生SQL功能

移动开发 iOS
IOS开发应用中在Core Data里应用使用原生SQL功能是本文要介绍的内容,主要是来学习Core Data的应用以及数据库的操作,来看本文详细内容讲解。

IOS开发应用中在Core Data里应用使用原生SQL功能是本文要介绍的内容,主要是来学习Core Data的应用以及数据库的操作。苹果在iPhone 3.0以后的sdk中提供了Core Data功能,对于普通的数据库应用开发来说,大大提高了方便性。

新建Window Base Application的时候,选上下面的使用Core Data,模板就自动创建好了,在delegate文件里提供了使用Core Data存取数据的所有方法,在其它View Controller里面只要调用delegate里面的方法就可以了。而修改Data Model并基于该Model创建Entity定义也提供了可视化的操作,一旦定义了实例,只要在程序中new一个实例,给变量赋值,然后调用 delegate中的save方法就可以添加一条新的记录了。这种方法对于长文本和时间等sql中比较难处理的字段尤其好用。而且在已保存的记录中取列表 等操作也非常方便。(具体可以参考apple提供的Core Data入门教程)。

但是后来当我需要做汇总功能的时候,就完全傻掉了,虽然Core Data也提供了简单的sum, avg等运算,但是对于ralationship下的sum却完全找不到文档,甚至论坛上也搜不到解决方案。难道要我取出list再一个个手动汇总?这样 数据量多的时候效率低的不是一点。当然,这时候如果能直接使用sql语句来汇总,那就最简单不过了。可是,Core Data封装的很完整,都不知道它把数据存到哪里去了,怎么办?难道要用sqlite重写整个程序,那已有添加和明细等功能就要做相当大的无谓的改动了。

今天终于找到了解决方案:Core Data本身就是基于sqlite的封装,所以它的底层仍然是使用sqlite进行存储数据的,而它使用的数据库,就在delegate文件中。通常是程 序的Documents目录下的以程序名为名字的sqlite文件。如果程序已经在模拟器中运行过,只要进入用户目录下的 Library/Application Support/iPhone Simulator/User/Applications/,这里是你所有模拟器中运行过的程序,找到你需要的那个,进去以后进入Documents目 录,里面就是自动生成的sqlite数据库文件。把它复制出来,用sqlite3命令直接查看数据库结构就可以了。

默认情况下生成的数据表的名字就是你的Entity的名字,加上字母Z开头,字段名也就是你定义的实例名字,同样加上字母Z开头,而主键就是个自增长的 int型。有了这个数据库结构,在程序中添加libsqlite3.0.dylib的framework,然后就可以在程序中使用原生 sqlite3功能了。

有了方便的core data解决简单的数据操作,再配合完全自定义的sqlite功能,现在可以随心所欲的开发强大的数据库应用了

小结:IOS开发应用中在Core Data里应用使用原生SQL功能的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-21 14:50:06

Core Data SQL

2023-12-22 09:11:45

AndroidNFC移动开发

2014-04-23 13:30:23

类簇iOS开发

2024-09-30 09:48:41

RabbitMQ消息中间件

2012-02-13 14:22:22

MonoTouchiOS应用Visual Stud

2024-07-01 00:00:06

ASP.NET开源

2011-08-18 11:10:49

Core Plot框架IOS开发

2022-12-06 23:43:53

iOSCreateML应用

2012-02-13 14:10:11

MonoTouchiOS应用Visual Stud

2011-08-09 10:27:41

iOS剪贴板

2011-08-08 13:26:48

iOS开发 Twitter

2014-06-13 11:06:36

RoboVMiOS应用

2015-03-30 12:13:23

React NativiOS

2011-06-14 14:27:02

Core DataCocoa TouchiOS

2011-06-13 16:22:49

Core AudioCocoa TouchiOS

2011-08-29 17:27:47

HTML 5交互移动应用

2013-09-11 11:05:28

iOS开发者指纹识别苹果发布会

2022-10-27 18:03:04

GogRPC云原生

2012-01-18 13:46:37

ARCiOS

2023-08-15 09:27:41

云原生技术
点赞
收藏

51CTO技术栈公众号