欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>iOS项目开发实战――iOS网络编程获取网页Html源代码

iOS项目开发实战――iOS网络编程获取网页Html源代码

2022-10-26 08:52:50 收藏本文 下载本文

“Wokethistime”通过精心收集,向本站投稿了9篇iOS项目开发实战――iOS网络编程获取网页Html源代码,下面是小编精心整理后的iOS项目开发实战――iOS网络编程获取网页Html源代码,仅供参考,大家一起来看看吧。

iOS项目开发实战――iOS网络编程获取网页Html源代码

篇1:iOS项目开发实战――iOS网络编程获取网页Html源代码

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

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

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

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

(2)运行程序,在控制台打印结果:(百度主页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(未能获取网络数据) }}

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

篇2:iOS项目开发实战――使用异步请求获取网页HTML源代码

在网络编程中,异步请求是用的最多的请求方式,与同步相比,不会造成用户界面的卡死,会有较好的用户体验,现在我们使用Swift在iOS项目中获取某个网页的HTML源代码。

override func viewDidLoad() { super.viewDidLoad() //异步请求 NSURLConnection.sendAsynchronousRequest(NSURLRequest(URL: NSURL(string: www.baidu.com)!), queue: NSOperationQueue()) { (resp:NSURLResponse!, data:NSData!, error:NSError!) ->Void in //闭包函数println(NSString(data: data, encoding: NSUTF8StringEncoding)!)//把获取的二进制数据转化为HTML进行输出; } }

运行程序,实现效果如下:

篇3:iOS项目开发实战――获取网页源代码的二进制数据

我在上一篇博客《iOS项目开发实战——iOS网络编程获取网页Html源代码》中讲述了如何获取一个网页的HTML源代码,可以满足一定的需求,但是由于特殊原因,我们想获取的是一个网页的二进制数据,那么应该怎么办呢?

具体实现如下:

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

override func viewDidLoad { super.viewDidLoad() var data = NSData(contentsOfURL: NSURL(string: www.baidu.com)!) println(data!)}

(2)运行程序,结果如下,能成功获取网页的二进制数据:

(3)现在对返回可能为空的情况进行优化,优化代码如下:

override func viewDidLoad() { super.viewDidLoad() var data = NSData(contentsOfURL: NSURL(string: fdsvsdfgvdf)!) if let binarydata = data{ println(data!) }else{ println(未能获取网络数据) }}此时的输出结果就是“未能获取网络数据”。防止系统网络请求失败时出现崩溃。

篇4:iOS项目开发实战――使用同步请求获取网页源代码

网络请求一般分为同步请求和异步请求,同步请求如果访问时间过长,会造成界面卡死状态,用户体验不是很好,但是请求速度较快的话,也可以考虑使用同步访问。现在先来学习同步访问。

(1)在viewDidLoad()方法中实现如下代码:

override func viewDidLoad() { super.viewDidLoad() var data = NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: www.baidu.com)!), returningResponse: nil, error: nil) if let d = data{ println(NSString(data: d, encoding: NSUTF8StringEncoding)!)//打印HTML }else{ println(未能获取网络数据) } }

输出结果会成功打印出网页HTML。

(2)打印出Http协议头

在viewDidLoad()中实现以下代码:

override func viewDidLoad() { super.viewDidLoad() var resp:NSURLResponse? var data = NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: www.baidu.com)!), returningResponse: &resp, error: nil) if let r = resp{ println(r) //打印Http协议头; } }

输出结果如下:

(3)打印错误信息

在进行网络操作时,偶尔出现错误是不可避免的,我们可以打印出错误,便于我们查错,打印错误代码如下:

override func viewDidLoad() { super.viewDidLoad() var resp:NSURLResponse? var error:NSError? var data = NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: www.baidu.com)!), returningResponse: &resp, error: &error) if let e = error{ println(e) //打印Http协议头; } }

测试该代码时,我们可以关闭网络,然后就会出现错误:我进行测试时,出现的错误如下:

篇5:iOS开发CocoaPods实战

CocoaPods 是开发 OS X 和 iOS 应用程序的第三方库的依赖管理工具,如果是正常的开发不需要使用的第三方的代码,CocoaPods是不需要的,但是从实际情况上,为了提高开发效率,CocoaPods算是一个必备的开发工具之一,一般如果是简单的引用,CocoaPods的优势不是很明显,当项目用到的第三方应用程序越来越多的时候,CocoaPods可以根据定义的依赖关系,统一管理,第三开源库如果有更新,直接更新Pods文件即可。

CocoaPods基础

CocoaPods是用 Ruby 写的,并由若干个 Ruby 包 (gems) 构成的,所以有的时候我们会看到有人说CocoaPods利用依赖管理构建的依赖管理工具,CocoaPods中用到了Ruby管理工作的包(gem),

CocoaPods应该是iOS最常用最有名的类库管理工具了,绝大部分有名的开源类库,都支持CocoaPods。CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境。OS X系统默认的已经可以运行Ruby了,如果安装CocoaPods只需要在终端中输入一个命令:

sudo gem install cocoapods

CocoaPods是以Ruby gem包的形式被安装的,安装的时候大概需要十分钟左右,需要FQ,如果不FQ的花可以通过淘宝的Ruby镜像访问CocoaPods。如果gem包版本不够新,可以更新一下gem:

gem update

如果需要升级CocoaPods可以使用安装的时候的同样的命令:

sudo gem install cocoapods

篇6:IOS开发――多线程编程

1.“省电,流畅,优质应用,响应速度快,用户体验好……”也许是众多用户眼中的苹果系统,

2.在众手机商拼CPU主频,拼4核,8核的年代,苹果依然坚持双核,iphone用户体验仍然坚挺。

以上两点IOS是如何优化,在续航,流畅度和响应速度上完胜安卓,答案就是多线程&RunLoop...

RunLoop是IOS事件响应与任务处理最核心机制,它贯穿IOS整个系统运作,

RunLoop不像一般的线程循环等待任务,传统的线程循环等待任务会导致CPU时间被占用,虽然你设置了睡眠时间,但很多时候会出现空转,

而RunLoop是监控事件触发处理机制,说白了,在有事件的时候CPU全力生产,当没有事件产生的时候,线程就挂起等待事件。

可以说,RunLoop是IOS比android省电,流畅,用户体验好的主要原因。

篇7:ios项目开发总结

时间过得真快,一眨眼我的实习生活就结束了,在这几天内,我似乎过了半年,又似乎是一瞬间,又好像做了一个很长很长的梦,梦醒的时候我就回到了我的学校。

三年时间,应该说是或多或少有些收获,可一走出校门后我才了发现我什么也不是,什么也不会,所学的东西少得可怜,连九牛一毛也可以说都不知.

说真的,很有幸我进入的是**家具实业有限公司进行实习,也可以说是试聘;在**信息中心进行编程,是用delphi软件给他们的一分厂的员工进行效益工资和计件工资方面的核算,求出他们的总工资.最后能以报表的形式表现出来,在这方面他们同进要求要个有查询的功能,也说是说输入工号可以调出一个员工三个月这内的所有的工资,同时超出三个月的可以自动消除.同时他们的工作流程是单卡流程,一个卡号,批量的进入,然后经本文来源于文秘公文网过员工的加工操作之后,批量的输出。在这个方面他们有个出材量和购进量之比,也就是说如何去求他们的出材率,出材率越高,就意味着生产出来的好的产品就越多,员工的效益工资就越高。比如他们有四个产品:规格料、指接、拼板、集成材、他们会对这四个产品进行定价;如生产出一立方米规格料的价格是3300元、指接是3600元、拼板是4000元、而集成材则是4860元;通过这些定价我们可以很清楚的看出工厂要求员工生产出什么样的产品。入他们的工序的材料我们称之为毛料,而产出的东西我们又称之为毛坏料,公司规定:如果员工的出材率在76.8%,那么超出的部分就是员工的效益工资,如果低于76.8%,那么员工就没有效益工资,负数归位于零,按零来计算,之后他要求对员工进行效益工资分配,比如有四个工序,送料器,直边、压刨、四面刨、他们又给这些工序的员工进行效益比例的分配、比如送料器是13.4%、直边是9.6%、压刨是50.4%、四面刨是30.6%,在这里又有主副之分,比例为6和4,同时他要求我们将效益工资进行分配到员工,也就是说员工可以很清楚的要看到自己一天能挣多少钱,做到心中有数,当然这个简单,我们只须打印出报表就行了。

还有一点就是对计件工资进行核算,在这方面他们也有一定的规格,比如长度,宽度,厚度在那个范围内,就有不同的定价;比如宽度小于20mm,定价是160元;如果在20mm和40mm之间,那么定价就可能在90元左右;如果大于40mm时,那么就可能是60元了,进行计价工资统计之后我们就可以进行分配了,在这方面他们的比例也是不如,又会添加新的工序,如改料锯了,还会有新的分配比例.

刚开始我们做这个程序的时候,大家都比较盲目,只是负责人说了一下,我们就开始进行编了在这个过程之种我们吃了许多的苦,有时候凌晨三四点我们还在加班,可最后做出的作品是输入速度太慢,我们的主管于是带领我们到他们一楼的微机室是去看他们以前编写的程序;不看不知道,一看吓了我们一大跳,以前我们那有这样想过呀,只要能做出来,没有错误就行了,可是速度呢?人家一个小时输入的东西,我们的程序可能需要一个早晨,看完之后主管对我们说:这样的程序送你,你会用吗?

那个打击呀,辛苦了几天几夜,最终却是这样的一个结果。可打击归打击,我们又得重新来做!相对而言,我们这次要比以前有经验了,一次比一次成熟起来了,在经历了又一个一天一夜的奋战,我们终于又有新希望了,可是心情刚好,那么又传来了消息,说他们的分配比例又发生的变动,价格又有了新的调整,这在以前我们也想过这个问题,也想好好的做,可是我们又一想他们的工厂不是要实用吗?这方面变化的可能性很小,于是为了方期间我将有变量写进了代码之中,这一变,无易宣布我要破产。和我在一起的几个也是这种情况,所以我们这些没有开发过软件的充当软件高手的新手们又得重新面对新的问题了.

失败,又一次被打败!

几天之后我们又做出了程序,很辛苦,此时我们才明白程序员的不易了,编程是一个见效特别慢的东西,而且对方又看不见,如果一不小心你的程序可能会无法打开,或者是说出现别的什么,那就完了,你几天的成果就什么也看不见了,本文自文秘公文网不像别的东西,做了,可以让大家看得见。我的程序在最后的调试时出现了一点小故障,而且工资的分配要对应到每一个员工,可我一时间一点思路也没有了,就只能对应到职务,所以我失败了,我的实习生活也就结束了。

当然比表面来看我是失败了,败的很惨;可是从某种意义上说我又达到了我的目的,因为只有失败的人永远都不会停下思考的脚步,激起了我沉睡的思想,使我一颗盲目的心有了方向,我不能这样输了,从那儿倒下去的,我会从那儿站起来的,认认真真的把毕业设计拿下来了;别人实习了一个月我虽然只有十六天,可在这十六天中我从未停下来过,我是白天干,晚上干,顶着那么大的压力,我的体会绝不低于他们中的任何一个人,说实话,在一段实习期间,我真的有点撑不住了,我也想到过放弃,也曾有好几家单位通知我去面试,也有联通的第二轮复试,可我都放弃了,我不能就这样走了。我输掉的是技能,不是人格;失掉了人格我将失去了所有,失掉技能我还会追回来的!

人生的每一步旅途中,总有着一道无形的栏杆,每一次跨越需要很多的勇气,也不是每一次跨越都能够成功,失败是不可避免的,主要的是要敢于承认失败,面对失败,努力去做,解决它,有这个决心,我想人生会成功的,至少可以无憾!这次我想我会很用心的去学习,去做我的毕业设计!尽量把他做到完美,至少我自己要九十分的满意我才会交出我的作品。

人生就是经历着风风雨雨,在风雨中倒下去,然后站起来的时候,那时的彩虹最美丽!

四周的时间能够和山大的同学一起工作、学习、生活我感到非常的荣幸,同时也感觉到很大的压力,作为电子商务专业的学生从事软件开发感觉还是有一定的困难,特别是我们还是和山大大三的学生一起,在初来时自己就有一些不自信,但随着项目的进展,我慢慢的找到了自己的位置,找到自己的目标,虽然自己与好的同学还有差距,这也给了我很大压力,但是我相信没有压力就没有动力,所以整个实训过程中我都在不断地努力。

实训期间让我学到很多东西,不仅在理论上让我对it领域有了全新的认识,在实践能力上也得到了很大的提高,真正的学到了学以致用,更学到很多做人的道理,对我来说受益匪浅。特别是利用周六上午的时间山大为我们安排的讲座让我们了解it领域一些新的发展动态以及一些领先的技术,让我意识到自己知识的缺少,这激励我在以后的学习、工作、生活中要不断了解信息技术发展动态以及信息发展中出现的新的技术。

除此之外,我还学到了如何与人相处,如何和人跟好的交流,我们组成一个团队大家一起开发一个项目,大家的交流沟通显得尤为重要,如何将自己的想法清楚明白的告诉队友,如何提出自己想法的同时又不伤害其他的队友的面子,这些在我的实训生活中都有一些体会。可是说,第一次亲身体会理论与实际相结合,让我大开眼界。也是对以前学习的一个初审吧,相信这次实训多我以后的学习、工作也将会有很很大的影响,在短短的二十几天里这些宝贵的经验将会成为我以后工作的基石。

篇8:Ios 项目从头开发 MVVM模式(一)

1.之前的项目一直用mvc开发ios,发现ios有一个弊端,mvc里,viewcontroller里边有大量的业务逻辑,b当不断的修改,会发现只是一个痛苦的过程,

2.之前做wpf,使用过mvvm模式,可以把业务逻辑放到vm模式,vm可以来处理业务逻辑。做过几个ios项目,也想过mvvm模式,但是一直没找到。偶尔看到网上有一个mvvm模式的ios项目,我来尝试从头开始做这个项目,做完之后源码会公开。

3.ok,这个mvvm开源的项目是C-41,有兴趣的可以去网上搜搜。

4.这个项目要关联到一些类库,ios有一个cocopods项目管理工具,可以自己配置,我已经配置好了。

5.新建一个项目,在项目目录下做一个Podfile,里边输入

target “MyTools” do

pod ‘ReactiveCocoa‘,‘2.1.8‘

pod ‘libextobjc‘,‘0.3‘

pod ‘ReactiveViewModel‘,‘0.1.1‘

pod ‘UIColor-Utilities‘,‘1.0.1‘

inhibit_all_warnings!

end

target “MyToolsTests”do

pod ‘Specta‘, ‘~>0.2.1‘

pod ‘Expecta‘, ‘~>0.2.3‘

pod ‘OCMock‘, ‘~>2.2.1‘

inhibit_all_warnings!

end

6.执行pod install,会自动下载并加入项目里边,

7.项目运行的时候,会报一个错误,XCTest/XCTest.h file not found built in Xcode 6

8. 遇到这个错误,大家可以去网上查,我在stackoverflow找到了合适的答案,吐槽下,在国内上这个网站,有时候很慢,建议大家去弄b一个****的软件,我现在用的是云梯,配置起来超简单。

9.In order to fix this for any CocoaPod dependencies you need to add the following toFRAMEWORK_SEARCH_PATHSin any Pod target that requires XCTest (e.g. Kiwi, Specta, FBSnapshotTestCase, etc).

$(PLATFORM_DIR)/Developer/Library/Frameworks

10.大意就是,在报错误的类库中,需要添加$(PLATFORM_DIR)/Developer/Library/Frameworks这个东东。这个是加在BuildSettings->Search Paths->Framework Search Paths里边添加。

11.运行我们这个mvvm模式架构的项目吧。后续会开始做一个项目。

篇9:ios 开发中获取字符串中重复的字符的rang

iOS 开发中经常会遇到处理字符串的问题,对于一个字符串经常会遇见里面包含重复的字符需要对重复的字符进行处理,下面的代码就是对重复字符进行处理的操作,具体代码如下所示:

/** * 返回重复字符的location * * @param text 初始化的字符串 * @param findText 查找的字符 * * @return 返回重复字符的location */- (NSMutableArray *)getRangeStr:(NSString *)text findText:(NSString *)findText{ NSMutableArray *arrayRanges = [NSMutableArray arrayWithCapacity:20]; if (findText == nil && [findText isEqualToString:@“”]) { return nil; } NSRange rang = [text rangeOfString:findText]; if (rang.location != NSNotFound && rang.length != 0) { [arrayRanges addObject:[NSNumber numberWithInteger:rang.location]]; NSRange rang1 = {0,0}; NSInteger location = 0; NSInteger length = 0; for (int i = 0;; i++) {if (0 == i) { location = rang.location + rang.length; length = text.length - rang.location - rang.length; rang1 = NSMakeRange(location, length);}else{ location = rang1.location + rang1.length; length = text.length - rang1.location - rang1.length; rang1 = NSMakeRange(location, length);}rang1 = [text rangeOfString:findText options:NSCaseInsensitiveSearch range:rang1];if (rang1.location == NSNotFound && rang1.length == 0) { break;}else [arrayRanges addObject:[NSNumber numberWithInteger:rang1.location]]; } return arrayRanges; } return nil;}

返回的数组对象就是重复字符在text 中的location, 使用方式是通过便利的形式,获取获取rang={array[i], findText.length}

【iOS项目开发实战――iOS网络编程获取网页Html源代码】相关文章:

1.路由器IOS的升级方法网络知识

2.iOS总结IOS开发部分语法的简化写法

3.IOS 开发学习总结 objectivec面向对象之――类和对象(下)

下载word文档
《iOS项目开发实战――iOS网络编程获取网页Html源代码.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

iOS项目开发实战――iOS网络编程获取网页Html源代码相关文章
最新推荐
猜你喜欢
  • 返回顶部