如今我们身处互联网的时代,任何一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互。一个没有涉及网络编程的应用会显得比较low,这里我们将会开始使用Swift开发iOS应用,并且主要来实现网络操作方面的功能。

这里的需求是获取某个网页的Html源代码,即从网上获取数据。具体实现如下:

(1)创建一个iOS项目,Language选择Swift。然后在ViewController.swift中实现如下代码:

    override func viewDidLoad() {super.viewDidLoad()var str = NSString(contentsOfURL: NSURL(string: "http://www.baidu.com")!, encoding: NSUTF8StringEncoding, error: nil)println(str!)//上述返回的是Optional Type可选值,返回值有可能为空,在我确保有返回值的情况下,使用感叹号!获取该值;}

(2)运行程序,在控制台打印结果:(百度主页Html内容太多,我只复制出一部分)

<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta content="always" name="referrer"><meta name="theme-color" content="#2932e1"><link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"><link rel="search" type="application/opensearchdescription+xml" href="/content-search.xml" title="百度搜索"><link rel="icon" sizes="any" mask="" href="//www.baidu.com/img/baidu.svg"><link rel="dns-prefetch" href="//s1.bdstatic.com"><link rel="dns-prefetch" href="//t1.baidu.com"><link rel="dns-prefetch" href="//t2.baidu.com"><link rel="dns-prefetch" href="//t3.baidu.com"><link rel="dns-prefetch" href="//t10.baidu.com"><link rel="dns-prefetch" href="//t11.baidu.com"><link rel="dns-prefetch" href="//t12.baidu.com"><link rel="dns-prefetch" href="//b1.bdstatic.com"><title>百度一下,你就知道</title><style index="index" id="css_index" type="text/css">
html,body{height:100%}html{overflow-y:auto}#wrapper{position:relative;_position:;min-height:100%}#head{padding-bottom:100px;text-align:center;*z-index:1}#ftCon{height:100px;position:absolute;bottom:44px;text-align:center;width:100%;margin:0 auto;z-index:0;overflow:hidden}#ftConw{width:720px;margin:0 auto}body{font:12px arial;text-align:;background:#fff}body,p,form,ul,li{margin:0;padding:0;list-style:none}body,form,#fm{position:relative}td{text-align:left}img{border:0}a{color:#00c}a:active{color:#f60}.bg{background-image:url(http://s1.bdstatic.com/r/www/cache/static/global/img/icons_45de3f02.png);background-repeat:no-repeat;_background-image:url(http://s1.bdstatic.com/r/www/cache/static/global/img/icons_15f748ea.gif)}.bg_tuiguang_browser{width:16px;height:16px;background-position:-600px 0;display:inline-block;vertical-align:text-bottom;font-style:normal;overflow:hidden;margin-right:5px}.bg_tuiguang_browser_big{width:56px;height:56px;position:absolute;left:10px;top:10px;background-position:-600px -24px}.bg_tuiguang_weishi{width:56px;height:56px;position:absolute;left:10px;top:10px;background-position:-672px -24px}.c-icon{display:inline-block;width:14px;height:14px;vertical-align:text-bottom;font-style normal;overflow:hidden;background:url(http://s1.bdstatic.com/r/www/cache/static/global/img/icons_45de3f02.png) no-repeat 0 0;_background-image:url(http://s1.bdstatic.com/r/www/cache/static/global/img/icons_15f748ea.gif)}.c-icon-triangle-down-blue{background-position:-480px -168px}.c-icon-chevron-unfold2{background-position:-504px -168px}#m{width:720px;margin:0 auto}#nv a,#nv b,.btn,#lk{font-size:14px}input{border:0;padding:0}#nv{height:19px;font-size:16px;margin:0 0 4px;text-align:left;text-indent:137px}.s_btn{width:95px;height:32px;padding-top:2px\9;font-size:14px;background-color:#ddd;background-position:0 -48px;cursor:pointer}.s_btn_h{background-position:-240px -48px}.s_btn_wr{width:97px;height:34px;display:inline-block;background-position:-120px -48px;*position:relative;z-index:0;vertical-align:top}</style></head><body></body>
</html>

通过以上代码,我们就能从网页上成功获取源代码。但是由于我在上述注释中关于可选型的问题,我决定优化一下代码,就算网络数据访问不成功或者出现为空有异常等等情况,也能反馈给用户一个提示,优化代码如下,注意对Optional Type为空的操作。

    override func viewDidLoad() {super.viewDidLoad()var strHTML = NSString(contentsOfURL: NSURL(string: "111111")!, encoding: NSUTF8StringEncoding, error: nil)if let print = strHTML{println(strHTML!)}else{println("未能获取网络数据")}}

运行以上代码,就能返回”未能获取网络数据“的提示了。就算网络有异常系统也不会崩溃。

github主页:https://github.com/chenyufeng1991  。欢迎大家访问!

iOS项目开发实战——iOS网络编程获取网页Html源代码相关推荐

  1. iOS项目开发实战——设置视图的透明度改变动画

    在iOS中 ,透明度的改变可以让View视图以一种渐变的效果动态的出现或者消退,非常有意思.这里我们将会对一个View控件的色块执行透明度改变的动画.关于其他的动画效果可以参考我的其他几篇博客< ...

  2. iOS项目开发实战——开发基于Handoff的App(Swift)

    iOS8推出一个新特性,叫做Handoff.Handoff中文含义为换手(把接力棒传给下一个人),可以在一台Mac和iOS设备上开始工作,中途将工作交换到另一个Mac或iOS设备中进行.这个在iOS8 ...

  3. iOS项目开发实战——使用Xcode6设计自己定义控件与图形

    在iOS开发中,有很多控件都是Xcode默认提供的.使用这些控件是很方便的.可是因为某些须要.须要自己设计控件,那么应该怎么做呢?在Xcode6中提供了这种接口,同意开发人员高速开发自己定义控件,而且 ...

  4. iOS项目开发实战——Label中字体字号与Label多行显示

    我们如何通过OC代码来设置Label中显示的文本呢?代码如下: #import "ViewController.h"@interface ViewController ()@end ...

  5. iOS项目开发实战——制作视图的缩放动画

    视图的大小应该是随时可控的.今天我们就来实现对一个View的缩放动画.该动画的实现与位移动画,透明度动画稍有不同. 详细实现例如以下: import UIKitclass ScaleViewContr ...

  6. iOS项目开发实战——实现苹果本地消息通知推送服务

    当你一个App在后台运行时,有可能服务器会向你推送重要的信息,常见的如微信,QQ等,就算你的App在后台,也会以通知的形式给你推送.推送服务分为本地推送和在线推送.本次我们先来实现本地推送通知. (1 ...

  7. Python编程:从入门到实践+爬虫开发与项目实战+网络编程基础+项目开发实战

    给还在苦苦自学Python的小伙伴们分享一波学习教程~有了它们,至少能节省50%的时间,少走一半的弯路. 书不在多,而在于精~ <Python编程:从入门到实践>豆瓣评分9.2 本书是针对 ...

  8. 第一个 iOS 项目开发小结 - SwiftUI 学习资料、开源项目

    第一个 iOS 项目开发小结 SwiftUI 知识点小记 学习资料 开源项目 一些问题记录 项目预览 这段时间由于项目需要,我学习了一段时间 SwiftUI 并单独完成了一个系统的开发,耗时两个星期, ...

  9. 《Swift iOS应用开发实战》——2.2 了解故事板

    本节书摘来自华章计算机<Swift iOS应用开发实战>一书中的第2章,第2.2节,作者:刘铭 著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.2 了 ...

最新文章

  1. 好的视频编解码网址和博文地址
  2. unity, standard shader消耗两个draw call
  3. 数据库:MySQL索引总结
  4. opencv进阶学习笔记12:轮廓发现和对象测量
  5. java 并发编程视频教程_全面深入学习java并发编程,视频教程下载
  6. Android之提示javax.net.ssl.SSLHandshakeException: Chain validation failed
  7. 关于计算机软件系统的知识,二、计算机软件系统基本知识
  8. 如何做到每天都写代码
  9. C语言 判断上三角矩阵
  10. Xcode打包ipa的步骤
  11. ODAC for delphi 安装
  12. DB数据库密码怎么破啊~~~求高手帮忙解决下~
  13. oracle dblink 验证,oracle通过dblink查询sqlserver报错
  14. 每日经典算法题(十六) 九九乘法表
  15. 输入n个整数,输出其中的最大值
  16. 品牌管理系统(第一个web项目)
  17. 新装Kali需安装的常用软件(不定期更新)
  18. 字符串转为Date类型
  19. MySQL字段类型VARCHAR
  20. 2020年云南省土地利用数据生产流程

热门文章

  1. Java中字符串为什么不以\0结尾
  2. 可升级的瑞星和卡巴KEY
  3. python只会基础能做什么?---你可以做一个文字游戏!
  4. Python将两个列表合并为一个字典
  5. 【人脸识别】Haar分类器五官定位【含GUI Matlab源码 686期】
  6. Git与GitHub说明分析
  7. Probability
  8. 武汉上海知名互联网公司面试心得体会
  9. 如何用紧凑型语音表征打造高性能语音合成系统
  10. 基于C++的灰度值方图处理