//

// DataRequest.swift

// MyFirstSwiftDemo

//

// Created by JackRen on 16/5/30.

// copyright © 2016年 JackRen. All rights reserved.

//





import Foundation

import Alamofire



class DataRequest: NSObject{

  //新闻信息的详情 id/name/title

  var item: [NewsCellModel] = []

  var delegate:DataRequestDelegate?



  //侧边菜单的主题列表

  var list: [SlideMenuThemeModel] = []

  var delegate1:ThemeDataRequstDelegate?

 

  func alamofireRequest(url: String){

    var model: NewsCellModel?

    Alamofire.request(.GET,url,parameters: ["foo": "bar"])

      .responseJSON { response in

        if let JSON = response.result.value {

          if let json = JSON.objectForKey("stories"){

            for var i = 0; i<json.count; i = i + 1{

              let str1 = json[i].objectForKey("id")as! Int

              //注意images格式,字符串数组

              let str2 = json[i].objectForKey("images")![0]as! String

              let str3 = json[i].objectForKey("title")as! String

//              print(str1)

//              print(str2)

//              print(str3)

              model = NewsCellModel(id: str1,newsImageName: str2,newsTitle: str3)

              self.item.append(model!)

            }



          }

          if let json = JSON.objectForKey("top_stories"){

            for var i = 0; i<json.count; i = i + 1{

              let str1 = json[i].objectForKey("id")as! Int

              //注意images格式,字符串数组

              let str2 = json[i].objectForKey("image")as! String

              let str3 = json[i].objectForKey("title")as! String

//                            print(str1)

//                            print(str2)

//                            print(str3)

              model = NewsCellModel(id: str1,newsTitle: str3)

              self.item.append(model!)

            }

           

          }

          //调用代理方法

          self.delegate?.transforValue(self.item)

        }

    }

  }

 

  //请求访问侧面菜单的主题列表数据

  func getThemesData() {

    Alamofire.request(.GET,"http://news-at.zhihu.com/api/4/themes").responseJSON {response in

      let JSON = response.result.value

      let json = JSON?.objectForKey("others")

      for var i = 0; i<json!.count; i = i + 1{

        let str1 = json![i].objectForKey("id")as! Int

        let str2 = json![i].objectForKey("name")as! String

//                                    print(str1)

//                                    print(str2)

        self.list.append(SlideMenuThemeModel(id: str1,name: str2))

      }

      self.delegate1?.transforThemeDataValue(self.list)

    }

  }

 

}

swift请求数据的封装的更多相关文章

  1. Swift - 异步获取网络数据封装类

    1,HttpController.swift123456789101112131415161718192021222324252627282930313233importUIKit//自定义http协议protocolHttpProtocol{//定义一个方法接收一个字典funcdidRecieveResults}classHttpController:NSObject{//定义一个可选代理vardelegate:?//定义一个方法运过来获取网络数据,接收参数为网址onSearch{//定义一个NSURL

  2. swift请求数据的封装

  3. Ajax原理,技术封装与完整示例代码

    在做项目和学习的时候,经常用到Ajax的相关技术,但是这方面的技术总是运用的不是十分好,就寻找相关博客来学习加深Ajax技术相关。Ajax简介同步、异步传输区别异步传输同步传输Ajax所包含的技术基础Ajax示例完整Ajax示例参考链接Ajax简介AJAX是一种用于创建快速动态网页的技术。Ajax所包含的技术使用CSS和XHTML来表示。现在的ajax完整代码和调用方式如下:现在这个Ajax基本上已经可以满足业务上的所以需求,不过还有一点没有实现,我们的Ajax不能设置请求头?!

  4. Ajax实战总结——用原生JavaScript代码封装自己的Ajax核心对象

    原因很简单,一是了解人家的封装过程,二是自己熟悉代码,三是更加深刻对Ajax核心对象的理解,以及使用Ajax异步更新的基本原理。传统的Web方式请求服务器数据图示:Ajax方式的Web请求图示:两者应用模式的对比图示:自己用原生JS代码封装的简单Ajax:小结:一切高大上的看似很难的技术,如果一层层分治的话,那也就都变得很简单了。

  5. jquey ajax 将变量值封装json传入JAVA action获取解析

    最近在做一个小小的功能模块,前台有很多的数据需要传入到后台,前台页面设计如下:看起来不是很清楚,总之表单中的数据都要提交到后台进行处理,然后插入到数据库,而且是一起提交到后台的,实现的方法大致有两种:(在处理类似需求,如果大家有其他意见,可以一起来交流分享)1)通过表单提交,当然在后台需要为每个字段定义一个集合对象,然后在页面中使用name标志,如果使用了strut2的话就更简单了,在Action

  6. Ajax封装数据的三种方式对比

    *对比HTML、XML和JSON数据格式的优缺点:*HTML:*优点:*不需要解析*HTML的可读性好*与innerHTML属性搭配,效率高*缺点:不适用于一个页面多个地方使用Ajax异步交互更新数据*XML:JAVAEE开发的接口文件格式*优点:*XML是一种通用的数据格式*为数据自定义合适的标记*利用DOM解析XML*缺点:*JSON:*优点:相对于XML,更轻巧*缺点:eval函数存在风险

  7. ajax form数据封装,ajax提交整个form表单,ajax 自动获取当前form数据

    ajaxform数据封装,ajax提交整个form表单,ajax自动获取当前form数据以上方法有个bug就是radio及checkBox数据得到的结果不正确。下面使用jquery自带方法serializeArray终于找到最实用的方法。

  8. AJAX框架汇总

    自称是通过JavaScript、CSS、XML和HTML实现高性能的交互式WEB框架,包括一个可定制易读的XML解析器。实际上,IWF是一个javascript:void;">AJAX的基础框架,并且还包括一些通用脚本代码。

  9. angular factory 服务封装获取数据的服务

  10. objective-c – 数据封装……?

    有人能够向我解释一下Objective-C中的数据封装是什么吗?我被告知这是Objective-C的一个重要概念,但我不明白为什么……向我解释好像我是5岁,然后好像我25岁……

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部