zoukankan      html  css  js  c++  java
  • swift学习第五天 项目实战-知乎日报客户端(一)网络交互NSURLConnection

    CSDN下载地址:http://download.csdn.net/detail/guchengyunfeng/7989139 

     

    这篇文章主要介绍知易客户端开发的网络部分

    网络接口

    格式:

    协议1: http://news-at.zhihu.com/api/3/news/latest (新闻列表)

    协议2: http://news-at.zhihu.com/api/3/news/ (新闻详细)

     

    代码实现的主要思路:

    协议1

     在KDNewsListApi类,并且实现下面的方法

     1 func getNewsData(){
     2 
     3         var url:NSURL=NSURL(string:self.url)
     4 
     5         var request:NSURLRequest=NSURLRequest(URL:url)
     6 
     7         var connection=NSURLConnection(request:request,delegate:delegate,startImmediately:false) //初始化一个connection
     8 
     9         println("NewsListUrl is :(self.url)")
    10 
    11         connection.start(); //通过start方法启动连接
    12 
    13     }

    在KDNewsListController类,实现以下接口函数

       func connection(didReceiveResponse: NSURLConnection!,didReceiveResponse response: NSURLResponse!) {
    
                // Recieved a new request, clear out the data object
    
                self.data = NSMutableData()
    
        }
    
        func connection(connection: NSURLConnection!,didReceiveData data: NSData!) {
    
    
                // Append the recieved chunk of data to our data object
    
                self.data.appendData(data)
    
        }
    
        func connectionDidFinishLoading(connection: NSURLConnection!) {
    
            var err: NSError
    
            var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(self.data,
                options:NSJSONReadingOptions.MutableContainers,
                error: nil) as NSDictionary
    
            print("NewsList Json Data:(jsonResult)")
    
        }

     

    协议2

    在KDNewsDetailApi类,并且实现下面的方法

     1 func getNewsData(){
     2 
     3         var url:NSURL=NSURL(string:self.url)
     4 
     5         var request:NSURLRequest=NSURLRequest(URL:url)
     6 
     7         var connection=NSURLConnection(request:request,delegate:delegate,startImmediately:false)
     8 
     9         println("NewsDetailUrl is :(self.url)")
    10 
    11         connection.start()
    12 
    13     }

    初始化一个NSURLConnection类,并且执行start方法

     

    在KDNewsDetailController类,实现以下接口函数

     1  func connection(didReceiveResponse: NSURLConnection!,didReceiveResponse response: NSURLResponse!) {
     2 
     3             // Recieved a new request, clear out the data object
     4 
     5             self.data = NSMutableData()
     6 
     7     }
     8 
     9     func connection(connection: NSURLConnection!,didReceiveData data: NSData!) {
    10 
    11             // Append the recieved chunk of data to our data object
    12 
    13             self.data.appendData(data)
    14     }
    15 
    16     
    17     func connectionDidFinishLoading(connection: NSURLConnection!) {
    18 
    19         var err: NSError
    20 
    21         var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(self.data,
    22 
    23             options:NSJSONReadingOptions.MutableContainers,
    24 
    25             error: nil) as NSDictionary
    26 
    27         print("NewsDetail Json Data:(jsonResult)")
    28 
    29     }

    运行的结果如下:

    协议1:

    {

        "date": "20140806",

        "stories": [

            {

                "title": "神经营销学:直接「挖」出你脑中对商品的偏好",

                "share_url": "http://daily.zhihu.com/story/4074172",

                "ga_prefix": "080612",

                "images": [

                    "http://pic3.zhimg.com/0624f675480562bd281ff106f9023d04.jpg"

                ],

                "type": 0,

                "id": 4074172

            },

            {

                "title": "「用灵魂在唱歌」,评委老这么说",

                "share_url": "http://daily.zhihu.com/story/4074299",

                "ga_prefix": "080610",

                "images": [

                    "http://pic4.zhimg.com/d74d5e3d32a2989a75ea1d3401527f82.jpg"

                ],

                "type": 0,

                "id": 4074299

            },

            {

                "title": "科学地告诉你,为什么有些谣言能在网上活得特开心",

                "share_url": "http://daily.zhihu.com/story/4074494",

                "ga_prefix": "080607",

                "images": [

                    "http://pic2.zhimg.com/790ea039d7ed5f8322f6b8376b8470fe.jpg"

                ],

                "type": 0,

                "id": 4074494

            },

            {

                "title": "为什么我们看到的国产电视剧,永远只有那么几种",

                "share_url": "http://daily.zhihu.com/story/4073625",

                "ga_prefix": "080607",

                "images": [

                    "http://pic1.zhimg.com/046cb040e87fa638fa3ac0c6e155f309.jpg"

                ],

                "type": 0,

                "id": 4073625

            },

            {

                "title": "《白发魔女传》:又毁了一个经典武侠人物",

                "share_url": "http://daily.zhihu.com/story/4074215",

                "ga_prefix": "080607",

                "images": [

                    "http://pic4.zhimg.com/cf9b40897c5928738db76194f5ac8938.jpg"

                ],

                "type": 0,

                "id": 4074215

            },

            {

                "title": "瞎扯 · 如何正确地吐槽",

                "share_url": "http://daily.zhihu.com/story/4075350",

                "ga_prefix": "080606",

                "images": [

                    "http://pic2.zhimg.com/5fad2244a6dba1fd3d474d23f3c22fbc.jpg"

                ],

                "type": 0,

                "id": 4075350

            }

        ],

        "top_stories": [

            {

                "title": "「用灵魂在唱歌」,评委老这么说",

                "image": "http://pic3.zhimg.com/124b543952f8561ddd8f1a5ac453a404.jpg",

                "share_url": "http://daily.zhihu.com/story/4074299",

                "ga_prefix": "080610",

                "type": 0,

                "id": 4074299

            },

            {

                "title": "《白发魔女传》:又毁了一个经典武侠人物",

                "image": "http://pic1.zhimg.com/f21531beb0e91e430d914e96b1b13e2c.jpg",

                "share_url": "http://daily.zhihu.com/story/4074215",

                "ga_prefix": "080607",

                "type": 0,

                "id": 4074215

            },

            {

                "title": "神经营销学:直接「挖」出你脑中对商品的偏好",

                "image": "http://pic4.zhimg.com/a359d6e82270b08941133c56f6ef63d6.jpg",

                "share_url": "http://daily.zhihu.com/story/4074172",

                "ga_prefix": "080612",

                "type": 0,

                "id": 4074172

            },

            {

                "title": "科学地告诉你,为什么有些谣言能在网上活得特开心",

                "image": "http://pic1.zhimg.com/0ed29854d6e1c632cd0615636375de30.jpg",

                "share_url": "http://daily.zhihu.com/story/4074494",

                "ga_prefix": "080607",

                "type": 0,

                "id": 4074494

            },

            {

                "title": "富士康都停工了:昆山这起特大粉尘爆炸是怎么回事?",

                "image": "http://pic4.zhimg.com/6d503a17d8477ed68d2c4420d98491f7.jpg",

                "share_url": "http://daily.zhihu.com/story/4073525",

                "ga_prefix": "080511",

                "type": 0,

                "id": 4073525

            }

        ]

    }

     

    协议2:

    {

        "body": "<div class="main-wrap content-wrap"> <div class="headline"> <div class="img-place-holder"></div> </div> <div class="content-inner"> <div class="question"> <h2 class="question-title">如何评价电影《白发魔女传之明月天国》?</h2> <div class="answer"> <div class="meta"> <img class="avatar" src="http://pic2.zhimg.com/d927c3aef_is.jpg"> <span class="author">Xiao Ronnie,</span><span class="bio">Lifetime Researcher</span> </div> <div class="content"> <p>一般都有个不成文的规矩,「多次延期必是烂片」。这话儿对好莱坞的电影百试百灵,这两年的华语电影,也开始逐一应验。去年有「佳片」名曰富春,反复延期多达四五次创了记录;这部《白发魔女传之明月天国》延期的次数也不遑多让。</p> <p>「家国恨」、「江湖味」和「儿女情」,这应该是中国经典武侠之中最让人着迷的地方。由林青霞和张国荣主演的那部经典版的《白发魔女》,为了讲一个囫囵的故事,把重点都聚焦在了江湖儿女情之上。当年看的时候,印象最深的当然是林青霞的绝代风华,张国荣的「不辜负」,还有吴镇宇和吕少玲演的雌雄同体的姬无双。但若刨除这些大演员们的个人魅力,于仁泰的那部电影,留下最多的怕是贯穿全片的黑暗色调以及和田惠美精致的美术设计。</p> <p>所以张之亮要拍这部新作,所图自然不小。女真侵国,权奸当道,忠臣喋血,饿殍遍野,阴谋无间——前面半个钟头的戏,就几乎把整个历史大时代的错综复杂展现出来了。这对导演而言也不是新鲜事,他之前执导的《龙门飞甲》以及《墨攻》,都在描绘时代背景上给足功夫。而且别忘了张之亮的成名作,《中国最后一个太监》;他对于表现动乱时代,很有一番心得。</p> <p>不论是梁羽生的原作,还是此前的屡次改编,《白发魔女传》的重点都是爱情嘛。所以,一边在交代大历史,一边又必须纠结于小情仇。电影的前半程,你明显能够感觉到叙事节奏快马加鞭未下鞍:武当派、魏忠贤和他净身前的闺女、川陕大军、皇太极、小捕头和孤女、红丸案、廷击案、明月天国、熊廷弼和袁崇焕、抗金大军……还有卓一航和练霓裳之间的情愫发展;故事中所应当囊括的巨大信息量都走马灯式的快速呈现,诸般人物只有一两个镜头,各类明暗线刚提起就收拢。而作为观影者,还没来得及把自己代入戏中,就又开始接收新的剧情,岂是一个「乱」字可言。</p> <p>但倘若后半部分,能够很好的将前文的铺垫利用好,至少还值得几分期待。但这部命途多舛的作品,最终定档马年七夕,不得不把重心完全向情感倾斜。从练霓裳刹那白发开始,后半部分电影的节奏,彻底 180 度转弯。男女主角的大特写越来越多,煽情的对白和场面也屡屡出现,连配乐的风格都不对了,一直到结尾出现 Low-Fi 版的《红颜白发》,电影开始呈现「七夕定制电影」的风貌。至于前文里的那些家国春秋,那些谋国者说?我们看的是七夕电影,不要在意那些细节。所以观众们看完电影后破口大骂确实有理:这种前紧后松,有头没尾的情况,当然让人生气。</p> <p>同时,《明月天国》还验证了另一条真理:如果一部电影的男女主角都只有长相,没有演技,绝对是一场灾难。其实范爷的表现至少还能符合通常对于花瓶角色的要求,而且在大部分内心戏里,她眼睛的妆容也弥补了情绪上的不足。至于我们亲爱的「黄教主」,继杨过和韦小宝之后,又一次毁了一个经典的武侠人物。</p> <p>哪怕是在这部电影里,卓一航至少也有三场足以打动人心的内心戏:一是为了武当存亡而向权奸屈服时的忍辱负重,二是练霓裳转瞬白头时的悲痛欲绝,三是练霓裳为了保全自己而念忘情决时的茫然无奈。而我们的教主,在这三场戏里都近乎用同一种「似笑而哭」的英俊表情,完成了他的情绪表达。而这种「似笑而哭」的表情,大家一点也不陌生,演刘彻时就有,演箫剑时也有,与杨过一般无二,甚至在成冬青身上都出现过。当然,在成冬青那儿,这样的神态在那个土鳖的扮相下显得恰到好处。但尼玛,谁想在卓一航这里看到成冬青的脸啊!</p> <p>纵观全片,还拿得出一说的对手戏,是将近结尾时,赵文卓和严屹宽关于家国使命的那段对话;但也仅仅是「值得一提」的程度。和当年那部被奉为经典的前作相比,在演员的表现力方面,确实天人有别。甚至连练霓裳让人过目难忘的个性,在影片结束时都显得非常模糊。至于其他方面,二十一世纪一零年代的技术水平,自然比二十年前高上不少。所以虽然 3D 效果备受诟病,但我认为只是观众恨屋及乌罢了。影片的特效水平虽然不能说优秀,但在国内同侪比较,也算中规中矩了。至于影片对于武侠和江湖的理解,以及在美学和设计方面的造诣,真是难望当年之相背了。</p> <p>这部《明月天国》的失败,和很多武侠经典以及民间传奇在电影改编上的失败有类似之处。举凡华语电影中改编成功的武侠电影,例如《卧虎藏龙》或者《新龙门客栈》,本身就是小故事;而民间传奇中,也只有黄飞鸿系列,狄仁杰系列或者四大名捕系列这样剧情上几乎不用太过连贯,每一集可单独成章的范例才能称得上成功。而包括金古梁的经典作品,还有类似杨家将、隋唐英雄或者七侠五义这样历史背景和内涵丰富、故事连贯、人物众多的原著,在电影改编上都鲜有优秀作品。为数不多被人念叨的,也都是极尽浓缩的《东邪西毒》或者喜剧演绎的《鹿鼎记》系列。在原作丰富的信息量,鲜明的人物个性,戏剧冲突不断的精彩故事以及电影的快速叙事节奏之中如何平衡,这一点在港片的黄金时代也没有很好的解决。但这一类别中,又存在太多可以视为宝库的电影素材,让人难以舍弃。</p> <p>《明月天国》,不论电影的主线设置和结局,甚至包括影片命名,都像是准备系列化的作品。但从这系列第一部的操作来看,只能又是一个失败的范例。因为中国普通观众对于这类古装武侠或者传奇作品的需求一直存在,只要是有一定完成度的作品,在档期上和宣传上又没有重大错误,商业表现都不会太差。首周末 2.15 亿虽然有七夕档的特殊,但也足见这类影片的市场空间。这足以激励电影创作者们继续在这一领域尝试。</p> <p>我只是觉得,在一次又一次的尝试和失败后,我们的观众们,总会迎来上乘的武侠 / 传奇改编作品的。</p> </div> </div> <div class="view-more"><a href="http://www.zhihu.com/question/24684647">查看知乎讨论<span class="js-question-holder"></span></a></div> </div> </div> </div>",

        "image_source": "《白发魔女传之明月天国》",

        "title": "《白发魔女传》:又毁了一个经典武侠人物",

        "image": "http://pic1.zhimg.com/f21531beb0e91e430d914e96b1b13e2c.jpg",

        "share_url": "http://daily.zhihu.com/story/4074215",

        "js": [],

        "ga_prefix": "080607",

        "type": 0,

        "id": 4074215,

        "css": [

            "http://news.at.zhihu.com/css/news_qa.auto.css?v=0abbb"

        ]

    }

    两个协议测试成功,完成接口部分,下一章节会进行UI部分的开发。

     

    另外写代码的时候swift遇到一点小问题,网上下载了一个项目,后来xcode编辑器里面的语法高亮都变成了灰色,很怪异,估计是命名里面有swift关键字的原因吧(有待研究),把项目关了重启xcode就ok了

     

    希望后续swift版本能尽快解决这个小BUG.

     

    CSDN下载地址:http://download.csdn.net/detail/guchengyunfeng/7989139 

     

  • 相关阅读:
    [面试题]去除字符串中相邻两个字符的重复
    [面试题]单向链表的倒序索引值?
    Android数据存储——文件读写操作(File)
    python操作Excel读写(使用xlrd和xlrt)
    在Ubuntu上安装qq2012客户端
    sharepoint 2010开发webpart(转)

    【Sharepoint 2007】WebPart开发、部署过程全记录(转)
    sharepoint2010最初的了解
    基于windows验证的moss2010站点登录域后还弹出对话框解决方法(转)
  • 原文地址:https://www.cnblogs.com/guchengfengyun/p/4049065.html
Copyright © 2011-2022 走看看