zoukankan      html  css  js  c++  java
  • [IOS] iphone开发之UITableView之UITableViewCell [待续中。。。]

    UITableViewCell  重用问题,摘自别人。感谢做者分享。

    http://www.cnblogs.com/cherri/archive/2010/08/26/1808859.html

    sqlite + UITableView 实现iPhone大数据浏览

    iPhone程序和传统的桌面程序的最大不同在于内存有限, 管理内存成了iPhone开发中时时刻刻需要谨记的事情。类似的功能在桌面程序上无非是将down下来的数据缓存于内存中,需要的时候画出来即可。 此法在iPhone上切不可行,虽然UITableViewCell可与reuse重复使用以节约内存使用量, 但是数据还是需要host在array或者dictionary中,必然导致程序实用大量内存儿崩溃退出。

    还好,iPhone系统内置sqlite微型数据库, 这么好的查询插入引擎不善用那就是罪过了。。。
    言归正传, 基本思路是这样的: 从服务器读取内容,以twitter为例,先创建消息数据表
    create table public_timelines (id integer primary key autoincrement, user varchar(40),\
    userurl text,body text, created real, created_string text,\
    imageurl text, ordernum int, userid varchar(20), user_screenname varchar(40));

    获取public timelines得到以xml形式存在的message条目,解析xml后将每条消息插入数据表, 写入成功后发送reload消息给table以重新填充表格单元内容

    如果消息记录超过一条, 记得在- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    中返回消息记录 + 1, 因为最后一个cell需要实现 Get More …功能

    就像上一步说的, 点击最后一个cell也就是Get More…时,在此从服务器获取 新的timelines, 将其解析再写入数据表中, 每次刷新时将数据表清空,否则显示的消息会越来越多:), Get More 工作状态大概时这样的

    如此, 程序使用的内存非常小, 每一条消息内容都是在需要的时候从数据库文件中读取, 减小了内存使用量就增加了程序的稳定性, 这对于成功的软件来说是非常必要的。

          这篇小文只是对这样一个实现技术做了简单的介绍, 其中还有很多细节需要考虑, 比如:对sqlite的封装,以便于使用; 采用NSURLConnection方式下载数据以及post数据的实现; 还有xml解析可以使用iPhone SDK本身的NSXML* 系列API 也可以使用libxml, 具体当然根据个人习惯来选择。 针对Twitter, 已经有很多很好的开源库可以直接使用,比如 TwitterEngine

  • 相关阅读:
    ActiveMQ 即时通讯服务 浅析
    Asp.net Mvc (Filter及其执行顺序)
    ActiveMQ基本介绍
    ActiveMQ持久化消息的三种方式
    Windows Azure Virtual Machine (27) 使用psping工具,测试Azure VM网络连通性
    Azure China (10) 使用Azure China SAS Token
    Windows Azure Affinity Groups (3) 修改虚拟网络地缘组(Affinity Group)的配置
    Windows Azure Storage (22) Azure Storage如何支持多级目录
    Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM
    Azure Redis Cache (2) 创建和使用Azure Redis Cache
  • 原文地址:https://www.cnblogs.com/iphone520/p/2217183.html
Copyright © 2011-2022 走看看