zoukankan      html  css  js  c++  java
  • iOS6编程:Core Data持久化数据存储(4)运行ShoppingCart应用程序

    本教程内容篇幅比较长!Core Data 属于 iOS App开发的进阶内容了。

    运行ShoppingCart应用程序

    代码编写好了,我们运行App测试一下。

    因为UI 视图界面并没有进行任何编码,因此没有什么变化,重点是Xcode调试器控制台的输出内容。NSLog语句的输出就显示在这里的。

    这些输出内容,刚好符合我们的预期。Customer 实体中只有一条记录,购物车编号:100,而且购物车添加了2个具体的商品。

    检查 SQLite数据库

    前面我们说过,SQLite数据库文件存放在App的Document目录下,数据库文件名为ShoppingCart.sqlite,怎么找到它呢?

    使用Finder 切换到如下文件夹:

    /Users/<您的用户名>/Library/Application Support

    /iPhone Simulator/6.0/Applications/<全局唯一的ID>/Documents

    注意:目录Library 默认可能是隐藏的,要访问它,可按住Option键,然后单击Finder的前往(Go)菜单,然后选择 – 资源库菜单项,进入Library目录。

    另外,其中的5.1 表示的是iOS 模拟器版本号,根据运行App选择的模拟器版本号不同而有变化。

    Applications 目录中使用全局唯一的ID,通过查看最新修改的目录列表,可以找到ShoppingCart 应用程序,以及Documents目录的ShoppingCart.sqlite数据库文件。

    怎么打开这个文件呢?

    我们可以采用SQLite Database Browser工具来打开它。

    可以从下面这个地址下载这个工具。

    http://sourceforge.net/projects/sqlitebrowser/

    将前面的ShoppingCart.sqlite数据库文件复制到我们方便访问的一个目录下,然后通过SQLite Database Browser工具打开它。

    如果前面insertDataIntoShoppingCartDB方法中的代码行:

    [self.managedObjectContext save:nil];

    仍然是注释的情况下,数据库中是没有任何记录的。我们可以把该代码行的注释取消掉,然后再次运行App,再次检查一下数据库中的记录。

    数据库的结构中,可以看到我们定义的三个实体对象:

    默认生成的数据表的名字就是前面创建的Entity的名字,加上字母Z前缀,字段名也是定义的属性命名,然后加上字母Z前缀,而主键是Z_PK,自增长的整型。

    查看数据记录:

    Customer表中记录信息:

    购物车ShoppingCartDetail中商品信息:

    查看Execute SQL 选项卡,可以试着写一条SQL 脚本查询一下:

    SELECT * FROM ZCustomer c
    INNER JOIN ZShoppingCartMaster sm on c.ZCustomerID=sm.ZCustomerID
    INNER JOIN ZShoppingCartDetail sd on sm.ZCartID=sd.ZCartID

    本教程的具体内容及其范例App都收录在《一步一步学习iOS 6 编程》的最新版PDF文件中。

    关于Core Data 框架中的其他开发内容,以及Xcode 4.5中提供的支持Core Data的Application 模板,都在《一步一步学习iOS 6 编程》中有具体的介绍。

  • 相关阅读:
    2018-2-13-安装-aria2
    ..USERstm32f10x.h(428): error: #67: expected a "}" ADC1_2_IRQn = 18, /*!
    zubax_gnss移植到STM32F407
    ChibiOS/RT移植到STM32F407
    arm-none-eabi/bin/ld: build/com.zubax.gnss.elf section `.text' will not fit in region `flash'
    Traceback (most recent call last): File "../zubax_chibios/tools/make_boot_descriptor.py", line 251
    Eclipse 交叉编译环境
    PX4/Pixhawk uORB
    FreeRTOS 任务创建和删除(静态)
    FreeRTOS 任务创建和删除(动态)
  • 原文地址:https://www.cnblogs.com/tuncaysanli/p/2727908.html
Copyright © 2011-2022 走看看