一,效果图。

二,,工程文件如下图所示:

三,DataModel.h

  1.  
  2. #import <Foundation/Foundation.h>
  3.  
  4. @interface DataModel : NSObject
  5. {
  6.     NSArray *myData;
  7. }
  8. -(NSString *)getNameAtIndex:(int)index;
  9. -(int)getRowCount;
  10.  
  11. @end
  12.  
  13.  

DataModel.m

  1.  
  2. //数据库文件
  3. #import "DataModel.h"
  4.  
  5. @implementation DataModel
  6.  
  7. -(id)init
  8. {
  9.     if (self=[super init]) {
  10.         
  11.         myData=[[NSArray alloc]initWithObjects:@"first",@"second",@"three",@"four", nil];
  12.      }
  13.     return self;
  14. }
  15. //显示数组中数据
  16. -(NSString *)getNameAtIndex:(int)index
  17. {
  18.     return (NSString *)[myData objectAtIndex:index];
  19. }
  20. //显示行数
  21. -(int)getRowCount
  22. {
  23.     return (int)[myData count];
  24. }
  25. @end
  26.  

四,ViewController.h

  1.  
  2. #import <UIKit/UIKit.h>
  3. #import "DataModel.h"
  4.  
  5. @interface ViewController : UIViewController
  6. <UITableViewDataSource,UITableViewDelegate>
  7. {
  8.     UITableView *myTableView;
  9.     DataModel *model;
  10. }
  11. @end
  12.  

ViewController.m

  1.  
  2. #import "ViewController.h"
  3.  
  4. @interface ViewController ()
  5. @end
  6.  
  7. @implementation ViewController
  8.  
  9. - (void)viewDidLoad {
  10.     [super viewDidLoad];
  11.     // Do any additional setup after loading the view, typically from a nib.
  12.     //初始化数据
  13.     [self initData];
  14.     //初始化界面
  15.     [self addBackgroundView];
  16. }
  17. #pragma -mark -functions
  18. //初始化数据
  19. -(void)initData
  20. {
  21.      model=[[DataModel alloc]init];
  22. }
  23. //初始化界面
  24. -(void)addBackgroundView
  25. {
  26.     myTableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 100, 320, 300)];
  27.     myTableView.dataSource=self;
  28.     myTableView.delegate=self;
  29.     [self.view addSubview:myTableView];
  30.  
  31. }
  32. #pragma -mark -UITableViewDelegate
  33. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  34. {
  35.     return [model getRowCount];
  36. }
  37. -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
  38. {
  39.     return 40;
  40. }
  41. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  42. {
  43.     static NSString *CellIdentifier=@"Cell";
  44.     UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  45.     if (cell==nil) {
  46.         cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
  47.     }
  48.     cell.textLabel.text=[NSString stringWithFormat:@"%@",[model getNameAtIndex:(int)indexPath.row]];
  49.     return cell;
  50.     
  51. }
  52. - (void)didReceiveMemoryWarning {
  53.     [super didReceiveMemoryWarning];
  54.     // Dispose of any resources that can be recreated.
  55. }
  56.  
  57. @end
  58.  

参考资料:《iOS数据库应用高级编程(第2版)》

【读书笔记】iOS-简单的数据驱动程序的更多相关文章

  1. 《利用python进行数据分析》读书笔记--第六章 数据加载、存储与文件格式

    http://www.cnblogs.com/batteryhp/p/5021858.html 输入输出一般分为下面几类:读取文本文件和其他更高效的磁盘存储格式,加载数据库中的数据.利用Web API ...

  2. 《SQL Server企业级平台管理实践》读书笔记——SQL Server中数据文件空间使用与管理

    1.表和索引存储结构 在SQL Server2005以前,一个表格是以一个B树或者一个堆(heap)存放的.每个B树或者堆,在sysindexes里面都有一条记录相对应.SQL Server2005以 ...

  3. [读书笔记]iOS 7 UI设计 对比度

    好久没写随笔了,最近在读<iOS 7 byTutorials>,很不错,推荐给大家. 每一个好的程序员也都是一个设计师,不懂设计的程序员不是好的CTO.哈哈,开个小玩笑. iOS 7设计的 ...

  4. $《第一行代码:Android》读书笔记——第6章 数据持久化

    主要讲述了Android数据持久化的三种方式:文件存储.SharedPreference存储.SQLite数据库存储. (一)文件存储 其实Android中文件存储方式和Java的文件操作类似,就是用 ...

  5. 《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(三)

    http://www.cnblogs.com/batteryhp/p/5046433.html 5.示例:usda食品数据库 下面是一个具体的例子,书中最重要的就是例子. #-*- encoding: ...

  6. 《统计推断(Statistical Inference)》读书笔记——第6章 数据简化原理

    在外行眼里统计学家经常做的一件事就是把一大堆杂七杂八的数据放在一起,算出几个莫名其妙的数字,然后再通过这些数字推理出貌似很靠谱的结论,简直就像是炼金术士用“贤者之石”把一堆石头炼成了金矿.第六章,应该 ...

  7. 深入理解linux网络技术内幕读书笔记(九)--中断与网络驱动程序

    Table of Contents 1 接收到帧时通知驱动程序 1.1 轮询 1.2 中断 2 中断处理程序 3 抢占功能 4 下半部函数 4.1 内核2.4版本以后的下半部函数: 引入软IRQ 5 ...

  8. OCA读书笔记(10) - 管理UNDO数据

    Undo自动管理与手动管理 undo段自动管理SQL> show parameter undo_management 将undo段改为手工管理SQL> alter system set u ...

  9. 读书笔记6pandas简单使用

    一.序列Series,很像numpy中的array数组,可以由列表.元组.字典.numpy中的array来初始化 >>> from pandas import Series > ...

  10. MySQL必知必会 读书笔记三:检索数据和数据排序

    检索数据 SELECT语句 它的用途是从一个或多个表中检索信息. 为了使用SELECT检索表数据,必须至少给出两条信息--想选择什 么,以及从什么地方选择. 检索单个列 SELECT col_1 FR ...

随机推荐

  1. iOS开发中一些常见的并行处理(转)

    本文主要探讨一些常用多任务的最佳实践.包括Core Data的多线程访问,UI的并行绘制,异步网络请求以及一些在运行态内存吃紧的情况下处理大文件的方案等.

其实编写异步处理的程序有很多坑!所以,本文 ...

  2. SpringMVC Controller 返回值的可选类型

    spring mvc 支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void. ModelAndView @RequestMap ...

  3. Unity 坐标系

    Unity 使用的是左手坐标系

  4. 用户授权 OAuth 2.0

    什么是OAuth OAuth是一个关于授权(Authorization)的开放网络标准,目前的版本是2.0版.OAuth适用于各种各样的包括提供用户身份验证机制的应用程序,注意是Authorizati ...

  5. 解决msgfmt无法使用的问题

    参考: http://blog.sina.com.cn/s/blog_4fb490ff0100csne.html http://linux.die.net/man/1/msgfmt http://pa ...

  6. IT人的自我导向型学习:学习的4个层次

    谈起软件开发一定会想到用什么技术.采用什么框架,然而在盛行的敏捷之下,人的问题逐渐凸显出来.不少企业请人来培训敏捷开发技术,却发现并不能真正运用起来,其中一个主要原因就是大家还没有很好的学习能力.没有 ...

  7. 【Spark】---- 在Linux集群上安装和配置Spark

    1 安装JDK   1) 进入JDK官网 2) 下载JDK安装包 3)配置环境变量,在/etc/profile增加以下代码 JAVA_HOME=/home/hadoop/jdk1.6.0_38 PAT ...

  8. MySQL忘记root用户密码修改方法

    一般来说在MySQL修改用户密码有好几种方法: 1.修改自己的密码可用: set password=password('123456'); 2.修改其它用户的密码可用: set password fo ...

  9. c#调用Aspose.Word组件操作word 插入文字/图片/表格 书签替换套打

    由于NPOI暂时没找到书签内容替换功能,所以换用Apose.Word组件. using System; using System.Collections.Generic; using System.C ...

  10. Winform调用QQ发信息并且开机启动 (开源)

    前言 公司CS系统需要加入启动qq从winform调用qq聊天窗口的功能,前提是需要将聊天者的QQ号码作为参数传递到函数中,一直没有搞过,正好很感兴趣,就折腾,Winform调用qq,我想肯定是需要一 ...