所有列表式的数据都是用 TableView 显示的

预览

待补充

原料

  • NSFetchedResultsController
    用来操作 NSFetchRequst,有执行查询,监听变化,数据缓存等功能
    • NSFetchRequest
      用来指定用什么条件查哪个表,结果集怎么排序
      • NSSortDescriptor
        排序方式 必须
      • NSPredicate
        谓语,其实就是查询条件,可选
  • UITableView
    • UITableViewController
    • UITableVIew 必须指定 DataSource,只要没特殊要求直接用这个 ViewController 就好了,这个类同时声明了下面两个协议
    • UITableViewDataSource
      顾名思义这个协议要实现数据源相关特性
    • UITableViewDelegate
      负责 TableView 的表现和动作的协议

步骤

  1. Storyboard 里拖一个 Table View Controller,这个 Table View Controller 自带一个 TableView 还有一个 TableViewCell
  2. 定义一个 UITableViewController 的子类,在 Storyboard 里把刚才那个 Table View Controller 的 Class 设为这个子类
  3. 声明一个 NSFetchedResultsController 私有变量,在 viewDidLoad 里初始化。
  4. 重写两个方法
  5. numberOfRowsInSection 返回指定分组的行数,NSFetchedResultsController 知道答案
  6. cellForRowAtIndexPath 通过 NSFetchedResultsController 获取到数据后设定单元格的显示值,然后再返回这个单元格
  7. 可以冒烟测试一下了

代码片段

只有 cellForRowAtIndexPath 的常规写法有些特别,这里只贴出它的例子

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)

-> UITableViewCell {

var cellId = "cellId" //属性编辑器里 给 TableViewCell 设定的 Identifier 

var cell = tableView.dequeueReusableCellWithIdentifier(cellId) as UITableViewCell?

if cell == nil{

cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: cellId)

}

cell!.textLabel?.text="取出的值"

return cell!

}

链接

iOS 开发快速导引:TableView 和 CoreData【草】的更多相关文章

  1. iOS 开发快速导引:iOS 程序框架【草】

    概要 待补充 App 生命周期 待补充 View Controller 生命周期 待补充 链接 Learn X in Y minutes —— swift 中文版 Learn X in Y minut ...

  2. iOS开发之表视图爱上CoreData

    在接触到CoreData时,感觉就是苹果封装的一个ORM.CoreData负责在Model的实体和sqllite建立关联,数据模型的实体类就相当于Java中的JavaBean, 而CoreData的功 ...

  3. iOS开发笔记之TableView优化

    TableView相信只要是做iOS开发的就不会陌生,目前大多数iOS的app都是采用TabBar+NavigationBar+TableViewController这一主流框架, 既然用的这么频繁, ...

  4. Android 开发快速导引:Android程序框架【草】

    概述 学习一项新技术之前要先了解这个技术的整体框架,这里先简单说一下 Android 的程序结构. Android App 有四个顶层的类:Activity.Service.ContentProvid ...

  5. iOS开发之 -- 判断tableview/scrollview的滑动方法,及导航栏渐变的实现代码

    开发的过程中,肯定会用到在视图想上滑动的时候,在导航处做一些操作,比如向上滑动的时候,做个动画,出现一个搜索框,或者其他的操作,那么我们怎么来判断它的滑动方向呢? 首先我们应该知道tableview继 ...

  6. iOS开发小技巧--TableView Group样式中控制每个section之间的距离

    一.TableView的Group样式中,默认的每个section都有sectionHeader和sectionFooter,只要调整这两个的大小就可以实现section之前的间距扩大或缩小 二.项目 ...

  7. iOS开发小技巧--TableView中headerView的循环利用,以及自定义的headerView

    一.首先要搞清楚,tableView中有两种headerView,一个是tableHeaderView,另一个是headerView.前者就一个;后者根据session决定个数 headerView的 ...

  8. iOS开发——UI_swift篇&TableView实现页眉和页脚

    TableView实现页眉和页脚   在UItableView中header和footer是很常见的,而且他能让你实现很复杂的功能,我们见过最多的就是下拉刷新和上啦加载更多,当然你还可以在上面添加一个 ...

  9. iOS开发——UI_swift篇&TableView自定义聊天界面

    TableView自定义聊天界面   1,下面是一个放微信聊天界面的消息展示列表,实现的功能有: (1)消息可以是文本消息也可以是图片消息 (2)消息背景为气泡状图片,同时消息气泡可根据内容自适应大小 ...

随机推荐

  1. pycharm配置字体问题

    A scheme with this name already exists or was deleted without applying the changes 解决办法:$cd ~/.PyCha ...

  2. 51nod1185(wythoff+高精度)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1185 题意:中文题诶- 思路:wythoff模板题,和51n ...

  3. Spring——集成JPA

    配置文件如下:<applicationContext.xml> <?xml version="1.0" encoding="UTF-8"?&g ...

  4. css雪碧图生成工具4.1更新

    V4.0介绍地址:http://www.cnblogs.com/wang4517/p/4493917.html 此次更新主要针对已有BUG的修复,用户可在客户端上直接看到更新信息,自己去下载 已修复问 ...

  5. {二逼小青年的记事簿}为什么treelist不会显示子节点的文字?

    <TreeView Name="treeView" DockPanel.Dock="Left" MinWidth="200" > ...

  6. 如何实现VoIP中大并发应用

    后台服务器实现高并发方式: 说明: 黄色皆为运营商或第三方对接系统的VoIP设备等. 前置服务器A与B为热备容灾模式,当A异常,立即跳转到B. 应用服务器做实时容灾处理. 数据库做实时容灾处理. 媒体 ...

  7. vim 基本使用

    vim 下基本命令 重新加载 .vimrc source ~/.vimrc 列出当前缓冲区的所有文档 ls 然后使用 b+编号 移至该文档 选中多行 v + shift 然后 j k 上下移动 缩进单 ...

  8. linux zip命令使用

    1.压缩文件zip -r result.zip /data/*.* //将data这个目录下的所有文件进行压缩,并形成result.zip压缩文件2.分卷压缩文件zip -s 1g result.zi ...

  9. 设置NotePad++设置"不打开上次关闭的文件"

    notepad++是一个很好的记事本工具,但是默认会记录上次打开时未关闭的文件,但是实际上用起来并不方便, 可以按照下面的方式去除,notepad++版本:v6.6.2,os:win7 64位 按照以 ...

  10. Linux 利用lsof命令恢复删除的文件

    lsof命令 lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP.UDP).找回/恢复删除的文件.是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需 ...