自定义博客皮肤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)
  • 资源 (7)
  • 论坛 (2)
  • 收藏
  • 关注

原创 NSURLSession的应注意避免循环引用

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

2015-10-31 21:41:32 2648

原创 URLSession解决断点续传问题。

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

2015-10-31 21:02:28 1749

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

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

2015-10-31 13:22:02 2696

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

//// ViewController.m// 04-URLSession的下载//// Created by apple on 15/1/23.// Copyright (c) 2015年 apple. All rights reserved./** NSURLSession下载,默认将下载的文件保存到tmp目录下。如果回调方法什么事情都没做。tmp里面的东西会自动删除

2015-10-30 23:52:01 753

原创 NSURLSession的介绍与基本用法

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

2015-10-30 22:48:42 655

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

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

2015-10-30 10:34:20 657

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

首先打开本地服务器(自己电脑的后台服务器),并拖进服务器端文件夹一个视频文件。打开服务器验证如下:然后打开本地服务器。具体代码如下://// ViewController.m// 使用NSURLConnection进行下载//// Created by apple on 15/10/29.// Copyright (c) 2015年 LiuXun. All r

2015-10-30 09:27:36 893

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

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

2015-10-29 15:51:26 9537

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

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

2015-10-29 09:10:56 3035

原创 开发中具体的加密思路

开发中的大致思路如下:

2015-10-28 23:11:48 432

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

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

2015-10-28 22:46:36 4239

原创 Base64编码加密的介绍与使用

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

2015-10-28 21:13:04 3165

原创 POST上传JSON数据

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

2015-10-28 16:41:36 3091

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

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

2015-10-28 15:32:33 423

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

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

2015-10-28 14:46:58 2215

原创 HTTP通信过程原理

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

2015-10-28 10:44:33 8885

原创 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和POST请

2015-10-27 23:27:54 563

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

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

2015-10-27 19:21:28 506

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

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

2015-10-27 15:08:09 2714

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

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

2015-10-27 14:10:14 1431

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

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

2015-10-27 10:34:09 2598

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

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

2015-10-26 17:12:54 1623

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

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

2015-10-26 15:02:05 485

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

新建工程代码如下://// 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:22 597

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

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

2015-10-26 12:01:24 425

原创 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:23 1797

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

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

2015-10-25 22:07:58 1070

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

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

2015-10-25 20:46:11 373

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

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

2015-10-25 13:12:27 450

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

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

2015-10-25 11:46:09 1888

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

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

2015-10-25 11:16:01 340

原创 SDWebImage的介绍与基本使用

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

2015-10-24 23:44:55 816

原创 第三方框架介绍

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

2015-10-24 22:21:07 533

原创 NSCache缓存类的详解

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

2015-10-24 17:42:15 8205

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

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

2015-10-24 15:13:43 627

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

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

2015-10-24 10:23:18 1420

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

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

2015-10-23 21:53:08 546

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

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

2015-10-23 20:54:13 690

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

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

2015-10-23 16:56:30 736

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

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

2015-10-23 15:32:57 1037

IOS第三方库大全

用于数据请求的第三方包ASIHttpRequest 用于创建组件约束进行屏幕适配的第三方包Masonry 用于显示缓冲或加载的动态组件第三方包MBProgressHUDFile 用于加密的第三方包MD5 用于上下拉刷新的第三方包MJRefresh第三方包 用于JSON解析的第三方包SBJson 用于图片缓存和下载的第三方包SDWebImageFile

2015-10-19

ng-flow上传多张图片

ng-flow 上传多张图片

2016-08-14

传智播客PPT之 )—数据存取

对象的归档和解档 数据库的操作 以及Coredata的详细使用

2015-10-19

UILabel分类——自动调整处理文章格式显示

当我们要在一个UILabel组件上显示指定文章格式和行间距 字体颜色或风格且高度不确定的文章时,只需要把该文件拉进工程。把头文件导入,即可让UILabel组件调用分类方法。任可要求均可满足。并且,还可以求出文章的具体高度。

2015-10-19

ios开发之SQLite数据库打开工具MesaSQLite

用于打开IOS客户端上的SQLite数据库

2015-10-19

CoreData 数据请求 以及下载的自封装方法

这是封装后的方法 连类名都不用写 导入调用函数名即可进行文件下载 数据请求 以及Coredata的使用

2015-10-19

IOS开发项目源代码之 ArtPage

涵盖最全的第三方库 封装了IOS最高级最高级的技术 使开发IOS程序更加方便,

2015-10-19

LIUXUN1993728的留言板

发表于 2020-01-02 最后回复 2020-01-02

CSDN 博客是不是有问题 怎么能出现这样滴BUG呢?

发表于 2017-07-25 最后回复 2017-07-26

空空如也

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

TA关注的人 TA的粉丝

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