<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tsunamier的博客]]></title><description><![CDATA[code to change the world]]></description><link>https://blog.youkuaiyun.com/tsunamier</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tsunamier]]></copyright><item><title><![CDATA[Python学习(python2.7.10)]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/78746644</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/78746644</guid><author>tsunamier</author><pubDate>Thu, 07 Dec 2017 22:31:13 +0800</pubDate><description><![CDATA[python 施工笔记
1:中文编码，文件开头指定编码格式，不会出现中文乱码
# -*- coding:utf-8 -*-]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析(十四)AFHTTPSessionManager]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/54576855</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/54576855</guid><author>tsunamier</author><pubDate>Fri, 20 Jan 2017 12:47:11 +0800</pubDate><description><![CDATA[AFHTTPSessionManager功能如下图所示：]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析(十三)AFURLSessionManager]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/54577893</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/54577893</guid><author>tsunamier</author><pubDate>Fri, 20 Jan 2017 12:46:19 +0800</pubDate><description><![CDATA[AFURLSessionManager功能结构如下图所示：]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析(十二)AFURLResponseSerialization]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/54563944</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/54563944</guid><author>tsunamier</author><pubDate>Sun, 15 Jan 2017 18:44:54 +0800</pubDate><description><![CDATA[AFURLResponseSerialization 和 AFURLRequestSerialization 是一对出现在网络处理中，AFURLResponseSerialization主要负责对网络请求完成之后返回的结果做解析处理。
分析AFURLResponseSerialization.h  可得到，相关类的结构如下图所示：]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析(十一)之AFSecurityPolicy验证服务器信任]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/54342996</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/54342996</guid><author>tsunamier</author><pubDate>Wed, 11 Jan 2017 14:18:48 +0800</pubDate><description><![CDATA[通过上篇文章总体的了概述了AFSecurityPolicy的功能。
先了解下数字证书和原理，这篇文章非常详细的讲解了证书以及认证的原理。
下面继续详细分析AFSecurityPolicy验证服务器信任的过程涉及的方法：
1：设置本地证书集合，和获取本地证书的公钥并创建公钥集合
1.1设置本地证书集合

- (void)setPinnedCertificates:(NSSet *)pin]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析(十)之AFSecurityPolicy]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/54341235</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/54341235</guid><author>tsunamier</author><pubDate>Wed, 11 Jan 2017 10:31:04 +0800</pubDate><description><![CDATA[AFSecurityPolicy提供以下功能：
1：创建安全策略
2：创建数字证书（客户端本地预置号的用来验证服务器的证书）
3：验证服务器证书的有效性
4：支持序列化


下面分逐个介绍这些功能：
AF提供的安全策略枚举值：
typedef NS_ENUM(NSUInteger, AFSSLPinningMode) {
    AFSSLPinningModeNone,//客户]]></description><category></category></item><item><title><![CDATA[断点调试程序执行过程中执行的方法]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53927384</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53927384</guid><author>tsunamier</author><pubDate>Thu, 29 Dec 2016 14:21:53 +0800</pubDate><description><![CDATA[使用命令：

(void)instrumentObjcMessageSends(YES);
例子使用模拟器运行：
- (void)viewDidLoad {
    [super viewDidLoad];

    (void)instrumentObjcMessageSends(YES);
    NSString *string = [NSString stringWithForma]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析(九)AFHTTPRequestSerializer 之解决调用Amazon S3 服务出现的bug]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53791361</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53791361</guid><author>tsunamier</author><pubDate>Wed, 21 Dec 2016 20:59:10 +0800</pubDate><description><![CDATA[主要讲解AFHTTPRequestSerializer提供的三种创建NSMutableURLRequest的方式的第三种，前两种已经在之前介绍过，此方法专门是针对Amazon S3产生的问题解决
/** 创建一个NSMutableURLRequest并删除request的HTTPBodyStream，在请求结束的回调中把数据异步的方式写到制定的文件中
 Creates an `NSMutable]]></description><category></category></item><item><title><![CDATA[分析 for(;;){break} 和 while(1){break}]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53788536</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53788536</guid><author>tsunamier</author><pubDate>Wed, 21 Dec 2016 18:12:44 +0800</pubDate><description><![CDATA[FORLOOP：
Lfunc_begin0:
	                 
@ BB#0:
	sub	sp, #4
	movs	r0, #1       //存放立即数1到寄存器r0
Ltmp0:
	str	r0, [sp]         //把r0中的数据传给sp
LBB0_1:                                 @ =>This Inner Loop ]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析(八)AFHTTPRequestSerializer 之AFStreamingMultipartFormData下]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53673751</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53673751</guid><author>tsunamier</author><pubDate>Thu, 15 Dec 2016 17:59:10 +0800</pubDate><description><![CDATA[本章接着上章继续讲解AFStreamingMultipartFormData设置上传文件（文本，图像，视频）时对请求的设置。
1：首先说下在iOS网络请求中以POST/PUT形式发送请求是，设置请求体的两种形式：HTTPBody 和 HTTPBodyStream
HTTPBody：适用于普通的post/put请求（大部分接口请求都使用这种）因为发送的请求体占用的内存很少。
HTTPBodyS]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析（七）详解AFHTTPRequestSerializer 之AFStreamingMultipartFormData上]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53611811</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53611811</guid><author>tsunamier</author><pubDate>Tue, 13 Dec 2016 17:27:01 +0800</pubDate><description><![CDATA[本文主要介绍关于AFNetworking中对文件上传的处理，涉及到的知识点：
1：PUT 和 POST 方式的区别
2：http MIMEType  multipart/form-data
3：如何手动实现文件上传功能（使用iOS NSMutableRequest,NSURLConnection或者NSURLSession）的请求对象创建和配置
4：AFNetWorking 的封装实现提交]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析（六）详解AFHTTPRequestSerializer 之序列化NSMutableURLRequest]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53581893</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53581893</guid><author>tsunamier</author><pubDate>Mon, 12 Dec 2016 13:41:59 +0800</pubDate><description><![CDATA[本文主要分析AFNetworking序列化NSMutableURLRequest
1：AFNetworking支持三种media-type对应的http请求头字段Content-Type为：
①application/x-www-form-urlencoded 
②application/json
③application/x-plist 
在http请求中，请求方式为(GET,HEAD]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析（五）详解AFHTTPRequestSerializer 之创建NSMutableURLRequest]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53510100</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53510100</guid><author>tsunamier</author><pubDate>Wed, 07 Dec 2016 20:23:31 +0800</pubDate><description><![CDATA[1:创建NSMutableURLRequest

- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
                                 URLString:(NSString *)URLString
                                parameters:(id]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析（四）详解AFHTTPRequestSerializer 之初始化方法]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53466973</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53466973</guid><author>tsunamier</author><pubDate>Mon, 05 Dec 2016 16:55:07 +0800</pubDate><description><![CDATA[1：类图介绍
在AFHTTPSessionManager 初始化方法中可以看到 AFNetworking 默认使用的网络请求序列化类是AFHTTPRequestSerializer，一下是关于它的类图：


2：类功能分析：
 一：初始化函数：

- (instancetype)init {
    self = [super init];
    if (!self) {]]></description><category></category></item><item><title><![CDATA[Object-c 中截取包含（中、英文、表情符号emojiicon)混合字符串的每个字符并获取此字符的unicode值]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53435598</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53435598</guid><author>tsunamier</author><pubDate>Fri, 02 Dec 2016 15:58:59 +0800</pubDate><description><![CDATA[ios中的nsstring 使用utf16编码，当字符串中包含中、英文、特殊字符、emojiicon 的时候，使用常规的characterAtIndex:会出现错误，因为这种方式是一个单元的utf16编码位截取，当截取ascii范围内的字符时，每个单元的长度是1（utf16对应两个字节），对于其它特殊字符就不一样了，因此正确的方式应该是：
字符串在网页上显示的不对，我截了个图：]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析（三）AFHTTPRequestSerializer 之AFQueryStringPair]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53318846</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53318846</guid><author>tsunamier</author><pubDate>Thu, 24 Nov 2016 11:53:57 +0800</pubDate><description><![CDATA[介绍


在发送请求之前需要配置request的各项参数，比如请求内容的编码，AFNetWorking中使用AFQueryStringPair类用来对网络请求数据进行编码（百分号编码）遵循rfc3986,

 AFQueryStringPair类通过函数NSString * AFPercentEscapedStringFromString(NSString *string){}实现编码。]]></description><category></category></item><item><title><![CDATA[iOS水波动画效果]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53262859</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53262859</guid><author>tsunamier</author><pubDate>Mon, 21 Nov 2016 19:31:57 +0800</pubDate><description><![CDATA[1：实现原理：两条不同内填充色的波浪向相对方向平移，产生波动效果，使用的技术：CAShapeLayer,UIBezierPath
2：实现效果


3：实现步骤：
画两条贝塞尔曲线，由于需要交叉产生效果，当前屏幕和屏幕外相同宽度的部分画线，然后按照固定的速度移动，每到移动到屏幕边缘的时候重新设置波浪线的路径，波浪的交叉重贴的部分产生的效果就是锁需要的效果具体实现代码如下：
#impor]]></description><category></category></item><item><title><![CDATA[iOS开发获取iphone，ipod，ipad，ipadmini 硬件类型名称]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53260014</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53260014</guid><author>tsunamier</author><pubDate>Mon, 21 Nov 2016 15:37:59 +0800</pubDate><description><![CDATA[iOS开发获取iphone，ipod，ipad，ipadmini 硬件类型名称]]></description><category></category></item><item><title><![CDATA[AFNetworking3.1.0源码分析（二）AFURLSessionManager中的_AFURLSessionTaskSwizzling]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53204839</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53204839</guid><author>tsunamier</author><pubDate>Thu, 17 Nov 2016 18:59:41 +0800</pubDate><description><![CDATA[在AFNetworking早期的版本中（2.0）中使用kvo监听NSURLSessionTask的state属性，达到对当前网络请求任务的状态的监控实现2.0版本的代码实现：
1）创建datatask时候监听datatask的state：
static void * AFTaskStateChangedContext = &AFTaskStateChangedContext;

- (NSUR]]></description><category></category></item><item><title><![CDATA[使用AVSpeechSynthesizer添加"文本转语音"的功能]]></title><link>https://blog.youkuaiyun.com/tsunamier/article/details/53134095</link><guid>https://blog.youkuaiyun.com/tsunamier/article/details/53134095</guid><author>tsunamier</author><pubDate>Fri, 11 Nov 2016 22:03:42 +0800</pubDate><description><![CDATA[AVSpeechSynthesizer播放一个或者多个语音内容：


#import 
#import 
@interface TSSpeech: NSObject

@property(nonatomic, strong, readonly)AVSpeechSynthesizer *speechSynthesizer;

+ (instancetype)speechController;
]]></description><category></category></item></channel></rss>