课程背景:
聚合数据是一家国内最大的基础数据 API 提供商。免费提供从天气查询、空气质量、地图坐标到金融基金、电商比价、违章查询等各个领域的安全、稳定和高效的数据。开发者可以免费使用聚合数据 API 进行移动 App 的快速开发,免除数据收集、维护等环节,大大降低开发周期及成本。
核心内容:
1.条码查询器结构分析。
2.如何将聚合数据 SDK 添加到工程中。
3.模型以及业务类的封装。
4.控制器间的数据传递。
5.tableView 以及 webView 的使用。
开发环境:Xcode 6、Mac OS X 10.10
课程大纲
本课时通过分析条码查询的UI结构和业务逻辑,快速的搭建起条码查询器的业务界面。
本课时介绍聚合数据SDK的下载,以及通过 SDK 使用文档和其中的 Demo,为工程添加 framework,并通过申请聚合数据账号,获取工程需要的 openID 和请求参数。并通过测试代码分析聚合数据的返回数据。
本课时演示如何将第三方框架以及极客学院老师封装好的业务类以及模型添加到工程中并快速使用,并将获取的数据显示在城市选择界面,并实现城市选择界面和首页的数据传递。
本课时分析商品详情界面数据,演示如何使用已经封装好的业务类和模型将电商和超市数据显示到界面上,并给出聚合数据获取数据类型不确定的解决方案。
本课时演示如何添加组头控件以及如何利用Xib快速创建一个 tableView 的 HeaderView ,并将服务器数据利用模型传递到 Xib 内的控件中,其中 imageView 的图片显示用到了 SDWebImage。
本课时演示如何将 UIViewController 中控制器的 view 换成 webView,并利用 webView 展示购买界面,并利用 MBProgressHUD 给出了电商无购买链接时候的UI提示。
课程原型图
课程代码片段
@interface ViewController () <JKCitiesControllerDelegate>
@property (nonatomic, copy) NSString *cityID;
@property (weak, nonatomic) IBOutlet UITextField *inputTextField;
@end
@implementation ViewController
- (IBAction)chaxunOnClick {
if (!self.inputTextField.hasText) {
[MBProgressHUD showError:@"请输入商品条码!"];
return;
}
JKGoodsController *gVC = [[JKGoodsController alloc] init];
BarCodeParam *param = [[BarCodeParam alloc] init];
param.cityid = self.cityID;
#warning 实际开发这里传入的是文本输入看中的字符串
param.barcode = @"6923450601822";
//param.barcode = self.inputTextField.text;
gVC.barCodeParam = param;
[self.navigationController pushViewController:gVC animated:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[JHOpenidSupplier shareSupplier] registerJuheAPIByOpenId:JHOpenID];
self.title = @"条码查询器";
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"上海" style:UIBarButtonItemStyleDone target:self action:@selector(openCitiesVC)];
self.cityID = @"1";
//
// [self test:kJHAPIS_EX_JHBAR_CITY parameters:@{ @"pname":@"com.jikexueyuan.JKJHBarCode" ,@"v":@"2.0"}];
[self test:kJHAPIS_EX_JHBAR_BAR parameters:@{ @"barcode": @"6923450601822" ,@"cityid":@"1" , @"pname":@"com.jikexueyuan.JKJHBarCode" ,@"v":@"2.0" }];
// [self test:kJHAPIS_EX_JHBAR_BUY parameters:@{ @"barcode":@"6923450601822" , @"dsid":@"5" ,@"pname":@"com.jikexueyuan.JKJHBarCode" ,@"v":@"2.0"}];
}
- (void)test:(NSString *)path parameters:(NSDictionary *)parameters{
JuheAPI *juheapi = [JuheAPI shareJuheApi];
[juheapi executeWorkWithAPI:path
parameters:parameters
success:^(id responseObject){
if ([[parameters objectForKey:@"dtype"] isEqualToString:@"xml"]) {
NSLog(@"***xml*** \n %@", responseObject);
}else{
int error_code = [[responseObject objectForKey:@"error_code"] intValue];
if (!error_code) {
NSLog(@" %@", responseObject);
}else{
NSLog(@" %@", responseObject);
}
}
} failure:^(NSError *error) {
NSLog(@"error: %@",error.description);
}];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)openCitiesVC
{
JKCitiesController *cVC = [[JKCitiesController alloc] init];
cVC.delegate = self;
[self.navigationController pushViewController:cVC animated:YES];
}
#pragma mark - JKCitiesControllerDelegate
- (void)backToMainVcWithCity:(City *)city
{
// 1.替换右上角中按钮的 title
self.navigationItem.rightBarButtonItem.title = city.cityname;
// 2.传递给主控制器一个 cityid 的数据
self.cityID = [NSString stringWithFormat:@"%@", city.cityid];
}
课程地址:http://www.jikexueyuan.com/course/324.html
课程原型图
课程代码片段
@interface ViewController () <JKCitiesControllerDelegate>
@property (nonatomic, copy) NSString *cityID;
@property (weak, nonatomic) IBOutlet UITextField *inputTextField;
@end
@implementation ViewController
- (IBAction)chaxunOnClick {
if (!self.inputTextField.hasText) {
[MBProgressHUD showError:@"请输入商品条码!"];
return;
}
JKGoodsController *gVC = [[JKGoodsController alloc] init];
BarCodeParam *param = [[BarCodeParam alloc] init];
param.cityid = self.cityID;
#warning 实际开发这里传入的是文本输入看中的字符串
param.barcode = @"6923450601822";
//param.barcode = self.inputTextField.text;
gVC.barCodeParam = param;
[self.navigationController pushViewController:gVC animated:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[JHOpenidSupplier shareSupplier] registerJuheAPIByOpenId:JHOpenID];
self.title = @"条码查询器";
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"上海" style:UIBarButtonItemStyleDone target:self action:@selector(openCitiesVC)];
self.cityID = @"1";
//
// [self test:kJHAPIS_EX_JHBAR_CITY parameters:@{ @"pname":@"com.jikexueyuan.JKJHBarCode" ,@"v":@"2.0"}];
[self test:kJHAPIS_EX_JHBAR_BAR parameters:@{ @"barcode": @"6923450601822" ,@"cityid":@"1" , @"pname":@"com.jikexueyuan.JKJHBarCode" ,@"v":@"2.0" }];
// [self test:kJHAPIS_EX_JHBAR_BUY parameters:@{ @"barcode":@"6923450601822" , @"dsid":@"5" ,@"pname":@"com.jikexueyuan.JKJHBarCode" ,@"v":@"2.0"}];
}
- (void)test:(NSString *)path parameters:(NSDictionary *)parameters{
JuheAPI *juheapi = [JuheAPI shareJuheApi];
[juheapi executeWorkWithAPI:path
parameters:parameters
success:^(id responseObject){
if ([[parameters objectForKey:@"dtype"] isEqualToString:@"xml"]) {
NSLog(@"***xml*** \n %@", responseObject);
}else{
int error_code = [[responseObject objectForKey:@"error_code"] intValue];
if (!error_code) {
NSLog(@" %@", responseObject);
}else{
NSLog(@" %@", responseObject);
}
}
} failure:^(NSError *error) {
NSLog(@"error: %@",error.description);
}];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)openCitiesVC
{
JKCitiesController *cVC = [[JKCitiesController alloc] init];
cVC.delegate = self;
[self.navigationController pushViewController:cVC animated:YES];
}
#pragma mark - JKCitiesControllerDelegate
- (void)backToMainVcWithCity:(City *)city
{
// 1.替换右上角中按钮的 title
self.navigationItem.rightBarButtonItem.title = city.cityname;
// 2.传递给主控制器一个 cityid 的数据
self.cityID = [NSString stringWithFormat:@"%@", city.cityid];
}
课程地址:http://www.jikexueyuan.com/course/324.html
相关推荐
这个实战案例将聚焦于如何利用聚合数据的API来实现短信验证码的发送与验证。 首先,我们需要了解聚合数据提供的短信验证码服务。聚合数据是一家提供多种API服务的公司,包括地理位置、天气、短信验证等。在短信...
"ANDROID项目开发实战:天气"是一个专注于使用Android技术来实现天气查询和空气质量监测的应用实例。这个项目利用了聚合数据(AggData)API,为开发者提供了一个方便快捷的数据来源,免去了数据收集、处理和维护的...
《Python数据挖掘项目开发实战:新闻语料分类与编程案例解析》是一门深入探讨无监督学习在新闻领域应用的教程。本章的核心是利用Python进行新闻数据的获取、聚类分析以及主题抽取出隐藏在海量新闻报道中的趋势和主题...
4、项目中采用完全还原企业大数据项目开发场景的方式来讲解,每一个业务模块的讲解都包括了需求分析、方案设计、数据设计、编码实现、功能测试、性能调优等环节,真实还原企业级大数据项目开发场景。 模块简介: 1、...
Python数据挖掘项目开发实战主要关注的是在大数据处理背景下如何运用编程技术进行数据分析。在这个领域,Python作为一门易学且功能强大的编程语言,已经成为数据科学家和工程师的首选工具。本课程教程可能涵盖了以下...
本书“MongoDB 聚合实战:数据分析与财务应用轻松入门”是为初学者和专业人士设计的一份指南,旨在帮助读者快速理解并应用 MongoDB 的聚合功能。 在第一部分,书中介绍了 MongoDB 的基础知识。从聚合的魅力开始,...
内附1-19章的实战程序。 目录 第1章 c#语言及其开发环境 实例001 根据需要创建所需解决方案 实例002 统一窗体中控件的字体设置 实例003 设置程序代码行号 实例004 通过“格式”菜单布局窗体 实例005 为项目添加dll...
SQL数据分析实战中的高效查询与数据操作,内容涵盖基础查询、复杂查询、数据操作和性能优化等方面。通过具体的示例代码,展示了如何使用SELECT语句进行数据提取,如何利用聚合函数进行数据统计,如何使用ORDER BY和...
数据库管理与开发项目教程-教案-09项目四:使用T-SQL查询表数据-实训六sale数据库 本资源摘要信息主要讲述了数据库管理与开发项目教程中的一个重要项目,即使用T-SQL查询表数据的实训六sale数据库。该资源涵盖了T-...
根据提供的文件信息,我们可以推断出这是一套关于MongoDB的视频教程,由燕十八主讲,包含了21讲的基础教程以及高级实战开发教程。接下来,我们将基于这些信息来生成相关的知识点。 ### MongoDB简介 MongoDB是一种...
数据库管理与开发项目教程-教案-08项目四:使用T-SQL查询表数据-任务4子查询 知识点1:SELECT语句的书写格式 * SELECT [DISTINCT] 选择列表 [Into 新的表] From 表或视图 [Where 检索的条件] [Group by 字段名1 ...
# 微信小程序开发项目——笑话大全 ###此项目是学习完微信小程序后实现的一个demo,采用[聚合数据](https://www.juhe.cn/)的免费api获取最新的文本笑话和趣图(图片和gif图) # 微信小程序开发项目——笑话大全 #...
10. **项目实践**:实战项目是提升数据预处理技能的最佳途径。这个资源包可能包含实际项目案例,帮助学习者从实际问题出发,应用以上理论知识,逐步掌握数据预处理的全过程。 通过深入学习和实践这些知识点,你将...
本教程的项目四是关于使用T-SQL查询表数据,特别是任务3聚焦于连接查询,这是处理多表数据时非常关键的一个概念。 1. SELECT语句的书写格式: SELECT [DISTINCT] 选择列表 [Into新的表] From 表或视图 [Where检索...
"ios-Cocoa高德点聚合.zip"这个压缩包很可能包含了一个示例项目或者代码片段,用于演示如何在iOS应用中实现这一功能。 首先,我们要理解什么是兴趣点(POI,Point of Interest)。在地图应用中,兴趣点通常指具有...
本教程聚焦于使用T-SQL查询表数据,涵盖了一系列基本到高级的查询技巧。 任务一:简单查询 简单查询主要涉及SELECT语句,它是SQL中最基础也是最重要的部分,用于从一个或多个表中提取数据。SELECT语句的基本语法...
在这个实战项目中,我们将专注于“电影数据可视化”,通过读取并分析`movie.csv`文件,运用pandas库进行数据预处理,然后利用Pyecharts库创建交互式可视化图表。 首先,我们需要了解`movie.csv`文件。这通常是一个...
总的来说,"ClickHouse大数据分析技术与实战视频教程"将帮助学习者理解ClickHouse的基础和高级概念,并通过实际操作提升在大数据分析领域的技能。配合提供的文本资料,学习者可以深入学习并实践ClickHouse的各种功能...
【Python项目实战:数据分析】 在本章节中,我们将深入探讨Python在数据分析领域的应用。Python作为一门强大且易学的编程语言,已经成为了数据科学家、分析师和工程师们的首选工具。清华大学的这门精品课程旨在帮助...
本实战数据集主要涉及两个核心部分:`video`数据和`user`数据,这些都是构建大数据分析模型的基础元素。让我们深入探讨一下这两个部分以及与Hive、大数据、Hadoop和数据仓库相关的知识点。 首先,`video`数据可能...