自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

NSURLSession的应注意避免循环引用

NSURLSession的大致用处如下所示:需要注意的是要解决NSURLSession的循环引用问题:打开NSURLSession的头文件,发现其代理是retain强引用,如下所示:上一个断点续传中截取部分代码,分析如下图:解决方法如下:(1)在下载完成后取消NSURLSession会话并释放Session,赋值为nil。(2)再视图将要消失时也执行同样的操作。为了防止没有下载完...

2015-10-31 21:41:00 243

URLSession解决断点续传问题。

在工程中,下载大的文件时时常用到断点续传。利用NSURLSession进行断点续传的步骤如下:(事先说明,真正的断点续传应该是即使程序退出后,再次启动还能接着原来的进度进行下载。)步骤一:进行界面布局,创建有关的按钮。步骤二:让当前控制器遵守NSURLSessionDownloadDelegate协议,并实现里面的三个回调方法。步骤三:建立全局变量。3.1 建立一个下载任务NSURLS...

2015-10-31 21:02:00 288

NSURLSession解决下载中的进度跟进问题——通过实现NSURLSessionDownloadDelegate协议中的回调方法...

使用NSURLSession解决下载中的进度跟踪问题,大致步骤如下:第一步:网址转义。因为网址中如果有中文的话是不可以被服务器识别的。所以要对其进行转义。需要注意的是:下载一般都是GET请求 只有GET请求需要对网址进行转义,POST请求是不需要转义的。使用的转义方法如下:- (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSS...

2015-10-31 13:22:00 450

NSURLSession解决下载中的解压缩问题

如果服务器端的文件是压缩包,我们需要将下载的文件进行解压缩到本地,苹果自己封装了一些压缩与解压缩的框架但是大都是C语言的,不太好用。所以我们使用封装好的SSZipArchive框架。打开框架的SSZipArchive.h文件。所有的框架包括苹果自封的框架越放在最前面的就是作者推荐我们使用 也是经常使用的方法,最常使用的方法如下:// Unzip 解压缩+ (BOOL)unzipFileA...

2015-10-30 23:52:00 143

NSURLSession的介绍与基本用法

对比NSURLConnection中的存在很多问题,例如:NSURLConnection是IOS2.0推出的古老而又经典的网络解决方案。复杂的网络请求需要使用代理进行实现。代理方式默认在主线程工作。只提供了start&cancel方法,不能暂停。在使用多线程时需要使用运行循环。-------------------------------------------...

2015-10-30 22:48:00 124

利用运行循环解决NSURLConnection多线程下载的问题(只需要了解)

NSURLConnection问题:1. 做复杂的网络操作,需要使用代理来实现。比如下载大文件2. 默认下载任务在主线程工作。3. 默认这个任务的代理也是在主线程4. 如果添加到子线程去执行,需要主动启动运行循环5. 只提供开始和取消。不支持暂停。代码如下:<span style="font-size:18px;"><span style="fon...

2015-10-30 10:34:00 107

使用NSURLConnection解决下载的问题——同步解决下载内存峰值与进度跟进的问题(只需了解原理)...

下载中涉及到的问题:问题一:直接使用Connection块操作进行下载,不能实现进度的跟进。——导致用户体验不好。解决方法:通过代理的方式来处理网络数据。问题二:当用代理的方式进行处理网络数据,如果每传过来一个数据包就添加在全局数据Data的后面 最后全部下载完成后才把连接后的NSData全局数据写入到指定路径,这样做会存在峰值问题。因为全部都添加在一起都在内存中,导致下载完成后的某一...

2015-10-30 09:27:00 223

Cookie的原理解析——利用服务器发送来的Cookie进行判断并保存一些信息

Cookie(1)Cookie由服务器端生成,发送给客户端。(2)客户端将Cookie的key/value 保存到某个目录下的文本文件内。(3)如果客户端支持Cookie,下次请求同一网站时就可以Cookie直接发送给服务器。(4)Cookie名称和值由服务器端开发自己定义。Cookie 最典型的应用是判定注册用户是否已经登录,记录用户登录信息,简化下次登录的过程。比如:登陆一次不退出下...

2015-10-29 15:51:00 533

钥匙串的使用——使用钥匙串进行保存本地密码

为了使保存的本地密码更安全,我们需要使用钥匙串进行保存本地加密后的密码,苹果7.03之后自带了钥匙串。但是使用比较麻烦,全部使用c语言。我们可以使用别人封装好的SSKeychain框架即可使用,具体用法如下:导入SSKeychain框架后可以直接使用的常用方法:删除保存在钥匙串里的密码(很少用)+ (BOOL)deletePasswordForService:(NSString *...

2015-10-29 09:10:00 1001

开发中具体的加密思路

开发中的大致思路如下:

2015-10-28 23:11:00 85

MD5加盐进行加密 以及更完全的加密方法HMAC+MD5的方式进行加密

新建工程代码如下:加密分类文件如下:(以后可以直接拖取)NSString+Hash.h//// NSString+Hash.h// 01-数据安全//// Created by 刘天源 on 14/11/12.// Copyright (c) 2014年 itcast. All rights reserved.//#import <Foundation/...

2015-10-28 22:46:00 313

Base64编码加密的介绍与使用

目前网络服务器有种流行的Restful设计风格,如下图所示:在终端使用base64编码解码文件的方法和结果如下:结果如下:事实上Base64也常用于给用户的密码编码和解码。新建工程 进行掌握 步骤如下:代码如下://// ViewController.m// POST登录//// Created by apple on 15/10/28.// Cop...

2015-10-28 21:13:00 297

POST上传JSON数据

POST上传JSON数据到服务器时有以下两种方式,但是最常用的是第二种:第一种:将要上传的JSON字符串(内容中的双引号前面必须要加转义字符\)然后按照UTF8编码格式转为NSData再设置给请求的数据体。如下所示:NSString *str = @"{\"username\" : \"小明\",\"age\" : \"24\"}";request.HTTPBody = [str dataUs...

2015-10-28 16:41:00 425

POST上传文件之分类抽取——以后只需要把分类导入,使用NSMutableURLRequest的分类即可...

每次上传文件拼接数据都很麻烦,为了解决这个问题。我们可以为NSMutableURLRequest抽取一个分类如下所示:NSMutableURLRequest+Multipart.h//// NSMutableURLRequest+Multipart.h// 06-POST上传//// Created by apple on 15/1/20.// Copyright (c) ...

2015-10-28 15:32:00 58

POST上传文件的原理剖析以及实例验证

如果向本地服务器上传文件,首先做的第一件事就是修改本地服务器端存放上传文件夹的权限。具体操作如下:在火狐利用本地服务器上传文件的做测试,数据分析如下:POST上传文件要拼接的串Content-Length(文件的大小)290Content-Type multipart/form-data; boundary(分隔符)=(可以随便写,但是不能有中文)\r\n--(可以随便写,但是...

2015-10-28 14:46:00 814

HTTP通信过程原理

打开火狐浏览器,打开本地服务器。发送登录 分别发送GET和POST请求。发送后,调试如下:具体数据分析如下:GET请求——>请求行GET /login.php?username=zhangsan&password=zhang HTTP/1.1GET:HTTP的请求方法login.php?username=zhangsan&password=zhang...

2015-10-28 10:44:00 217

GET请求和POST请求剖析

在HTTP/1.1协议中,定义了8种发送http请求的方法GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH根据HTTP协议的设计初衷,不同的方法对资源有不同的操作方式PUT :增DELETE :删POST:改GET:查最常用的是GET和POST(实际上GET和POST都能办到增删改查)要想使用GET和P...

2015-10-27 23:27:00 57

XML解析之DOM解析——利用第三方框架GDataXML进行XML解析,以及保存代码块的技巧...

XML解析:SAX解析— 从上往下,一点一点的进行读取。— 性能好— 苹果自带并推荐使用。DOM方式—一次性将XML文档以树形结构读入内存。—内存的消耗比较大。—在IOS开发中默认不支持DOM方式。但一些第三方框架实现了DOM方式。— 只适合小的XML文件的解析。—KissXML 和 GData原理都是以这种方式进行实现。新建工程,打开本地服务器。效...

2015-10-27 19:21:00 156

Log的使用技巧——解决字典和和数组的直接打印时问题

由于Xcode对打印集合时没有做本地化设置,所以遍历的时候能打印中文字符当直接打印集合的时候就会就将中文转化为Unicode码。为了解决这个问题,我们分别为NSArray和NSDictionary写两个分类拉进工程即可。因为打印时,默认是调用从NSObject继承而来的- (NSString *)descriptionWithLocale:(id)locale方法,所以重写这个方法即可。新建工...

2015-10-27 15:08:00 304

新建Model涉及基本数据类型必须注意的问题——将基本数据类型转为NSNumber类型...

将请求的数据使用KVC转为Model类型时,必须注意的是:Model中涉及基本数据类型的属性都设置为NSNumber类型。否则如果使用基本数据类型的作为Model的属性当那么服务器端将这个属性的值改为null的时候,程序就会崩溃。所以以后无论建立任何Model类型都将基本数据类型设置为NSNumber类型。新建工程:打开本地Apache服务器中的demo.json如下:具体代码如下:为...

2015-10-27 14:10:00 147

数据解析之XML解析详解(苹果自带XML解析)——并将数据转成Model(需要重点掌握)...

什么是XML?全称是Extensible Markup Language,可译为可扩展性标记语言。跟JSON一样,也是一种用于交互的数据格式。一般也叫做XML文档。XML举例<videos> <video name="小黄人第01部" length="30" /> <video name="小黄人第02部" length="19&quot

2015-10-27 10:34:00 547

JSON解析详解(JSONKit、苹果自带解析)和PList文件的反序列化

JSON什么是JSON?JSON是一种轻量级的数据格式,一般用于数据交互。服务器返回客户端的数据,一般都是JSON格式或者是XML格式(文件下载除外)。资料网站:http://www.w3cschool.cc/JSON 语法是 JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JSON的格式很像OC中的字典和数组{"na...

2015-10-26 17:12:00 239

归档解档的简单回顾——由于数据解析的原理与此类似(面试也会问到)

新建工程Person.h//// Person.h// 归档和解档//// Created by apple on 15/10/26.// Copyright (c) 2015年 LiuXun. All rights reserved.//#import <UIKit/UIKit.h>/** 归档和解档在开发中很少使用 */@interfac...

2015-10-26 15:02:00 89

网络发送同步请求——(开发中一般不会使用,但是还是了解的好)

新建工程代码如下://// ViewController.m// 异步连接参数解析//// Created by apple on 15/10/26.// Copyright (c) 2015年 LiuXun. All rights reserved.//#import "ViewController.h"@interface ViewController ()...

2015-10-26 14:31:00 80

网络异步连接参数解析——利用配置好的APache本地服务器做测试

本地计算机的IP地址和域名IP地址:127.0.0.1是回送地址,指本地机,一般用来测试使用。无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不要进行任何网络传输。常用测试命令:ping 127.0.0.1域名:localhost在计算机网络中,localhost(本地主机)是给回路网络接口的一个标准主机名,相对应的IP地址为127.0.0.1打开本地连接,如...

2015-10-26 12:01:00 73

Apache服务器的配置具体操作—— Apache比较强大,所以要配置Apache作为本地web服务器...

配置Apache的详细步骤如下:想打开整个系统的隐藏文件可以在终端下输入以下命令defaults write com.apple.finder AppleShowAllFiles -bool true关闭显示隐藏功能defaults write com.apple.finder AppleShowAllFiles -bool false安装Apache(Mac10.10)需要做的主...

2015-10-26 09:43:00 84

VIM 终端命令的简单了解—— 配置服务器时需要

终端命令如下所示:两种模式pwd 当前路径ls 当前路径下的所有东西cd 进入文件目录vim 文件名:打开文件-编辑模式:可以进行正常的编辑操作 左下方显示 -- INSERT -- "在命令模式下输入 i能够进入编辑模式"-命令模式:可以通过命令 左下方什么也不显示 "在编辑模式下按 ESC能够返回到命令模式"*** "最重要的命令":w q 保存并退出...

2015-10-25 22:07:00 53

网络必须首先了解的基本知识

在网络编程中,有几个必须掌握的基本概念客户端(Client):移动应用(iOS、android等应用)服务器(Server):为客户端提供服务、提供数据、提供资源的机器请求(Request):客户端向服务器索取数据的一种行为响应(Response):服务器对客户端的请求做出的反应,一般指返回数据给客户端作为移动开发工程师,主要的精力都是放在前端开发服务器:按照软件开...

2015-10-25 20:46:00 145

利用Reachability框架进行网络连接状态监测

网络连接状态监测几乎任何地方都离不了。进行联网状态监测,最简单的方法是使用第三方框架Reachability。其实就两个文件Reachability.h和Reachability.m文件,然后导入头文件就可以使用了。打开Reachability.h文件。最常使用的是+ (instancetype)reachabilityWithHostName:(NSString *)hostNam...

2015-10-25 13:12:00 109

SDWebImage的底层介绍以及——需要了解和掌握的要点(包括面试题,图片格式,以及GIF的播放)...

具体如下所示:官方网站$ git clone --recursive https://github.com/rs/SDWebImage.git1>面试题1]如何防止一个url对应的图片重复下载* "cell下载图片思路 –有沙盒缓存"2] SDWebImage的默认缓存时长是多少?* 1个星期3] SDWebImage底层是怎么实现的?...

2015-10-25 11:46:00 189

SDWebImage 涉及知识点位移枚举的操作解析

凡是涉及枚举传值时,不了解的就直接传入0 因为枚举有个约定,传入值若为0则不进行任何有关操作。如果要传递多个值则多个枚举值之间用或 | 连接 作为参数传递即可新建工程,代码如下://// ViewController.m// 位移枚举详解//// Created by apple on 15/10/25.// Copyright (c) 2015年 LiuXun. Al...

2015-10-25 11:16:00 89

SDWebImage的介绍与基本使用

什么是SDWebImageiOS中著名的牛逼的网络图片处理框架包含的功能:图片下载、图片缓存、下载进度监听、gif处理等等用法极其简单,功能十分强大,大大提高了网络图片的处理效率国内超过90%的iOS项目都有它的影子项目地址https://github.com/rs/SDWebImage- (void)sd_setImageWithURL:(NSURL *)url;- (void...

2015-10-24 23:44:00 244

第三方框架介绍

自定义NSOperation步骤很简单:重写-(void)main方法,在里面实现想执行的任务重写main方法时需要注意:—自己创建自动释放池(如果是异步操作,无法访问主线程的自动释放池)—经常通过-(BOOL)isCancelled方法检测操作是否被取消,对取消做出相应。特别注意:定义了一个继承自NSOperation的操作类,凡是这个类的对象被添加到操作队列,就会执行它的m...

2015-10-24 22:21:00 232

NSCache缓存类的详解

NSCache:专门做缓存的类NSCache简介:NSCache是苹果官方提供的缓存类,用法与NSMutableDictionary的用法很相似,在AFNetworking和SDWebImage中,使用它来管理缓存。NSCache在系统内存很低时,会自动释放一些对象(出自苹果官方文档,不过在模拟器中模拟内存警告时,不会做缓存的清理动作) 为了确保接收到内存警告时能够真正释放内存,最好调用一下r...

2015-10-24 17:42:00 342

NSOperation之 设置UITabView的有沙盒图片缓存——剖析内在原理

注意:无沙盒缓存即(内存缓存)的缺点是,必须在有网的时候使用,一旦程序退出就会清除缓存。导致用户在没有网的时候无法使用即无法看到原先下载好的数据。所以这就需要用沙盒来保存缓存。有沙盒缓存的思路:(重点)原理图如下所示:前提(准备工作):开始有一个存放图片的缓存池全局属性即一个可变字典images,和一个专门存放下载操作的操作缓存池operations,开始都为空。启动程序,会初始化(新建...

2015-10-24 15:13:00 82

NSOperation 之 Block循环引用——以及nil Nil NULL [NULL null]的区别

已知,字典和数组存放的对象都不可以为nil,否则会使程序崩溃。所以在字典或数组中添加对象时,必须先判断对象是否为空nil,如果为nil则不进行对象的添加操作。如果需要将对象赋值为空的话就存放[NSNULL null];[NSNull null]; 空对象,可以存放到字典或数组。NULL: c语言的空指针nil: OC指向空对象的指针Nil: 空类。根控制器永远不会销毁。所以要新建控制器进...

2015-10-24 10:23:00 142

NSOPeration 之UItabView无沙盒缓存——UITabView下载图片后 从操作缓冲池清除下载操作...

当数据很大,即使是2000条数据。存放下载操作的缓冲池也会非常大,仍然需要及时清理一下。清理的步骤:在一个图片下载完成后,就根据图片的链接在存放下载操作的缓冲池中删除此图片的操作。问题回顾总结:问题1:如果网速比较慢,会很卡解决方法:使用异步下载问题2:图片没有Frame,所有cell初始化的时候,给imageView的frame是0。异步下载完之后不显示解决办法:使用占位...

2015-10-23 21:53:00 105

NSOperation之为UItabView制作图片缓存——在didReceiveMemoryWarning方法中做图片缓存的清理操作...

将图片保存到Model模型中的优缺点如下:优点:不用重复下载,利用MVC刷新表格,不会造成数据混乱,加载速度比较快。缺点:内存问题,所有下载好的图像都会保存在模型内。如果数据比较多假设为2000个就会造成内存警告。又因为图像与模型的耦合性太强。导致清理内存非常困难。为了解决内存问题,需要为UITabView制作图片缓存。制作图片缓存的步骤如下:(1)新建一个全局的可变字典。键用...

2015-10-23 20:54:00 147

NSOperation之为操作缓冲池解决操作重复添加操作的问题——UItabView的Cell数据下载并刷新的案例...

问题1:如果网速比较慢,会很卡解决方法:使用异步下载问题2:图片没有Frame,所有cell初始化的时候,给imageView的frame是0。异步下载完之后不显示解决办法:使用占位图(如果展位图比较大,自定义cell可以解决)问题3:如果图片下载速度不一致,同时用户快速滚动的时候,会因为Cell的重用导致图片混乱解决方法:MVC,使用Model(模型)保存下载的图像,再次刷新表格。问题...

2015-10-23 16:56:00 149

利用NSOperation进行异步图片下载——设置UITabView数据,图片下载,占位图。解决异步下载和Cell重用造成的图片设置混乱。和多次重复下载的问题...

同步下载图片:同步下载图片。就是直接下载,然后设置。因为下载是一个耗时操作,同步执行又限制当前操作执行不完就不允许执行下一个操作。从而造成界面卡顿的现象。如下图所示:为了解决这个问题:需要使用异步下载:即当前操作不执行完毕可以执行下一个操作。如下图所示:占位图:UITabViewCell中UIImageView是懒加载的方式执行的,如果没有图片是默认不显示的。所以一加载完毕是没有图片显示的...

2015-10-23 15:32:00 205

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除