斯坦福iOS7公开课11笔记及演示Demo&访问HTTPS链接下载数据

移动开发 iOS
这一节主要介绍UITableView以及iPad,Demo为从Flicker下载图片并显示,但是实际过程中发现需要FQ并使用HTTPS连接,所以这次用了两个Demo,一个是课程中的Demo,另一个是简化的。最后调试过程中还找到Xcode中观察变量的一个小技巧。

这一节主要介绍UITableView以及iPad,Demo为从Flicker下载图片并显示,但是实际过程中发现需要FQ并使用HTTPS连接,所以这次用了两个Demo,一个是课程中的Demo,另一个是简化的。

***调试过程中还找到Xcode中观察变量的一个小技巧。

一.UITableView

 UITableView是iOS中最常用的表视图,通讯录中的联系人、手机设置里的每一个选项都是表视图中的一个单元格cell,微信、微博每一条记录其实也是一个cell,只不过是组成要素更多一些而已。

1)两个重要的协议

UITableViewDataSource和UITableViewDelegate是UITableView里两个重要的协议(可以把协议理解成接口),前者用来实现单元格数据源的控制,包括两个必须实现的:指定单元格cell数量以及分组数量,其他诸如删除、移动等操作也是通过实现这个协议里的方法来使用。

&;&; UITableViewDelegate,这个协议提供用户与UITableView交互操作的一系列方法,比如最常用的点击单元格的响应方法

2)cell的复用

为了节约资源,iOS会对cell进行复用,单独有一个地方存放移出屏幕的cell,当向上滑动UITableView时,如果队列中有可复用的cell,就可以直接取出使用,需要注意的是,这里的复用有一个限制条件,即cell的样式都相同。

二.iPad特有控件

 iPad中有两种常用UI控件,弹出窗口UIPopoverController和目录-内容组合控件UISplitViewController,本次 课程介绍了后者,UISplitViewController由两个视图组成,一个是目录视图master,一个是内容视图detail,Demo就是通 过master中使用UITableView显示图片名称,点击后在内容视图detail里加载对应图片。

这里有两点值得注意:

(1)根据UISplitViewController为iPad独有控件直接判断设备是iPhone还是 iPad,UISplitViewController默认0是master目录视图,1是detail内容视图,使用 UISplitViewController下,如果获取不到内容视图,设备就是iPhone,反之iPad。

(2)UISplitViewController协议里提供了方法来解决横竖屏时master视图是否显示的问题 ,需要注意的是,UISplitViewControllerDelegate很特殊,需要在viewDidLoad之前设置

三.Demo过程问题总结

Flicker目前被墙,所以需要FQ访问,注册申请API的key即可,验证发现只能通过HTTPS访问,所以对FilckerFetcher里的地址都修改成HTTPS

 下载得到的数据一直为nil,报错也是提示数据空,检查发现,请求HTTPS连接时不能使用+dataWithContentsOfURL:这个方法,因为无法设置安全验证相关,而请求HTTPS连接是必须对安全验证进行设置的,否则请求失败,所以得不到数据。

;参考:http://stackoverflow.com/questions/14013307/datawithcontentsofurl-ios-https-self-signed-certificate

 这里使用了NSURLConnection的委托方法,来使客户端忽略证书验证

参考:http://www.cnblogs.com/stan0714/archive/2012/03/21/2409872.html

还有其它方法,没有进行尝试,这种方法据说是苹果不允许的,提交应用时会有问题。

http://stackoverflow.com/questions/19394628/cant-receive-json-request-via-https-due-to-untrusted-certificate

还遇到一个问题就是获取图片数据时报错,这是因为图片接收不完全,现象图片在屏幕上显示一小部分立即消失,原因是之前只接受了部分数据就马上转化图片,并通知主线程更新UI

实际上应该数据接收完全后再做后续操作,因为数据可能需要多次才传输完全。

 同样问题后来也出现在获取图片列表的json数据时(只是当时恰好数据一次就获取完全过,没注意处理)

 四.调试小技巧

用鼠标选中变量或者下方观察变量都可以,但有时始终觉得不方便,断点调试时可以在输出窗口输入“po 变量名”来观察变量赋值情况

 目前完整版Demo点击单元格还有bug,欢迎解决后告知原因,若有更新也会及时补充。

简化版Demo下载  完整版Demo下载
本文链接:http://www.cnblogs.com/colinhou/p/3952799.html

责任编辑:chenqingxiang 来源: cnblogs
相关推荐

2019-03-24 12:11:47

AI 数据人工智能

2012-09-05 11:06:19

2010-08-23 14:01:25

互联网

2021-02-02 12:17:05

人工智能算法技术

2009-05-19 09:06:41

Apple斯坦福iPhone

2013-01-31 09:45:14

斯坦福超级电脑百万内核

2012-03-21 21:38:27

苹果

2014-08-05 16:14:51

腾讯创业吴晓波

2019-12-16 14:33:01

AI人工智能斯坦福

2018-01-15 23:18:49

2015-01-20 15:48:34

MDSA线下公开课app质量

2012-07-18 10:30:40

Hadoop培训

2015-01-20 13:37:18

2013-09-18 10:46:15

2017-11-28 14:18:29

2018-12-03 09:35:26

互联网

2016-09-27 16:06:48

2016-12-05 20:20:15

CTO训练营公开课

2018-08-13 21:19:07

Weld开源数据
点赞
收藏

51CTO技术栈公众号