[視頻教程] 彙總資料 iOS 項目開發實戰:條碼查詢器

來源:互聯網
上載者:User

標籤:framework   項目開發   天氣查詢   控制器   視頻教程   

課程背景:


彙總資料是一家國內最大的基礎資料 API 供應商。免費提供從天氣查詢、空氣品質、地圖座標到金融基金、電商比價、違章查詢等各個領域的安全、穩定和高效的資料。開發人員可以免費使用彙總資料 API 進行移動 App 的快速開發,免除資料收集、維護等環節,大大降低開發週期及成本。


核心內容:


1.條碼查詢器結構分析。
2.如何將彙總資料 SDK 添加到工程中。
3.模型以及業務類的封裝。
4.控制器間的資料傳遞。
5.tableView 以及 webView 的使用。


開發環境:Xcode 6、Mac OS X 10.10



課程大綱

1. 條碼查詢器介面搭建

12:53650) this.width=650;" src="http://s1.jikexueyuan.com/v3/static/images/common/ue-time-14-1.png" alt="播放按鈕" style="border:none;" />

本課時通過分析條碼查詢的UI結構和商務邏輯,快速的搭建起條碼查詢器的業務介面。

2. 彙總資料SDK使用介紹

13:15650) this.width=650;" src="http://s1.jikexueyuan.com/v3/static/images/common/ue-time-14-1.png" alt="播放按鈕" style="border:none;" />

本課時介紹彙總資料SDK的下載,以及通過 SDK 使用文檔和其中的 Demo,為工程添加 framework,並通過申請彙總資料帳號,擷取工程需要的 openID 和請求參數。並通過測試程式碼分析彙總資料的返回資料。

3. 城市選擇介面完善

21:22650) this.width=650;" src="http://s1.jikexueyuan.com/v3/static/images/common/ue-time-14-1.png" alt="播放按鈕" style="border:none;" />

本課時示範如何將第三方架構以及極客學院老師封裝好的業務類以及模型添加到工程中並快速使用,並將擷取的資料顯示在城市選擇介面,並實現城市選擇介面和首頁的資料傳遞。

4. 商品詳情介面初步完善

24:41650) this.width=650;" src="http://s1.jikexueyuan.com/v3/static/images/common/ue-time-14-1.png" alt="播放按鈕" style="border:none;" />

本課時分析商品詳情介面資料,示範如何使用已經封裝好的業務類和模型將電商和超市資料顯示到介面上,並給出彙總資料擷取資料類型不確定的解決方案。

5. 商品詳情介面完整資料展示

19:03650) this.width=650;" src="http://s1.jikexueyuan.com/v3/static/images/common/ue-time-14-1.png" alt="播放按鈕" style="border:none;" />

本課時示範如何添加組頭控制項以及如何利用Xib快速建立一個 tableView 的 HeaderView ,並將伺服器資料利用模型傳遞到 Xib 內的控制項中,其中 imageView 的圖片顯示用到了 SDWebImage。

6. 購買介面完善

13:43650) this.width=650;" src="http://s1.jikexueyuan.com/v3/static/images/common/ue-time-14-1.png" alt="播放按鈕" style="border:none;" />

本課時示範如何將 UIViewController 中控制器的 view 換成 webView,並利用 webView 展示購買介面,並利用 MBProgressHUD 給出了電商無購買連結時候的UI提示。


課程原型圖

650) this.width=650;" src="http://img.blog.csdn.net/20141105144629084?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU29yb3NX/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" style="border:none;" />

650) this.width=650;" src="http://img.blog.csdn.net/20141105144647539?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU29yb3NX/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" style="border:none;" />
650) this.width=650;" src="http://img.blog.csdn.net/20141105144707585?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU29yb3NX/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" style="border:none;" />

650) this.width=650;" src="http://img.blog.csdn.net/20141105144742281?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU29yb3NX/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" style="border:none;" />


課程代碼片段

@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


[視頻教程] 彙總資料 iOS 項目開發實戰:條碼查詢器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.