开源中国iOS客户端学习——(十)搜索功能

本文介绍了开源中国iOS客户端的搜索功能实现,涉及到XML解析和动态加载表视图单元格。文章详细讲解了searchView类的dosearch方法,包括网络请求、XML数据解析以及用户信息处理。同时,提到了数据加载的优化问题,分析了可能存在的流量和电量消耗。最后,解释了如何打开并查看搜索结果的详细信息。
摘要由CSDN通过智能技术生成

---------------------------------------------------------------------------------------------------------------------------

2015.8.19 更新

考虑到还会有很多童鞋会看到该Blog,在此做一个说明,开源中国iOS开源客户端源码已做重构,请下载最新的源码学习(注:本Blog不一定适用与新的代码学习)。

新repo地址:http://git.oschina.net/oschina/iphone-app

另外,收集了一些其他社区的客户端源码,源码也正在不断更新中,有的也上架appstore。

访问地址:http://duxinfeng.com/2015/07/14/iOS%E5%BC%80%E6%BA%90App%E6%95%B4%E7%90%86/

---------------------------------------------------------------------------------------------------------------------------



 开源中国社区团队基于开源项目 GitLab 开发了一款和GitHub一样的在线代码托管平台 Git @ OSC。并且开源客户端的源码在GitHub上不做更新,迁移到Git @OSC上了,欲了解更多请访问Git @ OSC官网http://git.oschina.net

客户端最新源码下载地址:http://git.oschina.net/oschina/iphone-app


        回归正题,今天分析的是开源中国iOS客户端搜索功能涉及道一些知识,XML解析和动态加载表视图单元格;

在软件首页右上角有一个搜索按钮,点击进入搜索界面,当搜索的内容很多时我们下拉点击 “下面20项。。。”可以在加载20项,这些数据如何填充到表视图之中?

      


负责搜索功能的是search下的searchView类,xib控件已经已经做好布局,首先说下SearchView.h文件属性成员代表的作用;

#import <UIKit/UIKit.h>
#import "SearchResult.h"
#import "MBProgressHUD.h"
@interface SearchView : UIViewController<UITableViewDelegate,UITableViewDataSource,UISearchBarDelegate>
{
//    可变数组存放解析的数据
    NSMutableArray * results;
//    搜索的时候判断是否正在加载数据
    BOOL isLoading;
//    判断数据是否加载完毕
    BOOL isLoadOver;
//    记录表视图单元格应该加载数据总条数
    int allCount;
}
@property (strong, nonatomic) IBOutlet UISegmentedControl *segmentSearch;
@property (strong, nonatomic) IBOutlet UITableView *tableResult;
@property (strong, nonatomic) IBOutlet UISearchBar *_searchBar;
//根据搜索关键字在不同分类中进行搜索
- (IBAction)segementChanged:(id)sender;
//搜索
-(void)doSearch;
//清空上次搜索记录
-(void)clear;


OK现在挺进SearchView.m文件,如果搜索的内容不为空开始 dosearch方法,dosearch方法中使用了ASNetwork类库封装的post网络请求方法(关于AFNetwork post  get请求方法请看http://blog.csdn.net/duxinfeng2010/article/details/8620901

- (void)postPath:(NSString *)path
      parameters:(NSDictionary *)parameters
         success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
         failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure


post请求无法获取它的url,但是可以取出请求成功返回来的数据,比如搜索iOS  返回的xml


<?xml version="1.0" encoding="UTF-8"?>
<oschina>
  <pagesize>20</pagesize>
  <results>
          
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值