<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CJFeng的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_34716474</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_34716474]]></copyright><item><title><![CDATA[【RXSwift】系列四 ：变换操作符]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/82689571</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/82689571</guid><author>qq_34716474</author><pubDate>Sat, 27 Oct 2018 01:10:57 +0800</pubDate><description><![CDATA[变换操作符

对原始的Observable序列进行一些转换

1. map

通过使用一个闭包将原来的Observable序列，转成一个新的Observable



 


    func mapOperate() {
        let ofSequence = Observable.of(1,2,3)
        ofSequence.map { $0 * 2 }
        ...]]></description><category></category></item><item><title><![CDATA[【RXSwift】系列三 ：Subject详解]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/83422898</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/83422898</guid><author>qq_34716474</author><pubDate>Sat, 27 Oct 2018 01:03:40 +0800</pubDate><description><![CDATA[Subject介绍

Subject 既是 Observer 也是 Observable 。它可以订阅一个或多个 Observable，当收到消息后进行处理，也可以通过Event将数据发送给订阅者。
一共有四种Subject，PublishSubject、BehaviorSubject、ReplaySubject、BehaviorRelay、Variable(废弃、用BehaviorRelay替代...]]></description><category></category></item><item><title><![CDATA[【RXSwift】系列二 ：Observer创建]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/83422891</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/83422891</guid><author>qq_34716474</author><pubDate>Sat, 27 Oct 2018 01:00:30 +0800</pubDate><description><![CDATA[Observer创建
观察者 是用来监听事件，然后它需要这个事件做出响应
常见观察者

AnyObserver - 任意一种观察者
Binder - 特定观察者：比如UI观察者

Observable 与 Observer 之间的关联

subscribe(…) - 订阅
bind(…) - 绑定


直接在subscribe中创建

直接在Observable的subscribe方面后面描述当事...]]></description><category></category></item><item><title><![CDATA[【RXSwift】系列一 ：Observable创建]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/83422887</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/83422887</guid><author>qq_34716474</author><pubDate>Sat, 27 Oct 2018 00:58:32 +0800</pubDate><description><![CDATA[什么是RXSwift？

RX（ReactiveX），一种跨平台的标准，目前很多开发语言都有Rx的库，包括RxJava、RxJS、Rx.NET、RXSwift等。
RxSwift是Swift函数响应式编程的一个开源库，它主要是提供了一种在Swift语言下可以轻易写出响应式函数式的功能实现。

理解：之前传递事件方式有：delegate、notification、kvo、target-action等...]]></description><category></category></item><item><title><![CDATA[【iOS】屏幕适配]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/51191671</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/51191671</guid><author>qq_34716474</author><pubDate>Thu, 18 Oct 2018 20:11:00 +0800</pubDate><description><![CDATA[屏幕适配

1、屏幕适配的发展过程：

代码计算frame -&amp;gt; autoreszing(父控件和子控件的关系) -&amp;gt; autolayout(任何控件都可以产生关系) -&amp;gt; sizeclass

 

没有屏幕适配，直接使用frame固定子控件的大小

屏幕大小一样，但是如果进行ipad开发，就需要考虑屏幕适配

屏幕大小不一样，需要考虑屏幕适配（使用autoresizing/a...]]></description><category></category></item><item><title><![CDATA[【iOS】详解APP启动过程]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/51308645</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/51308645</guid><author>qq_34716474</author><pubDate>Thu, 18 Oct 2018 20:10:25 +0800</pubDate><description><![CDATA[我们都知道，程序的入口是main函数，在用C写代码的时候，都会有个mian函数，但是在OC中，在.m文件中，我们最常看到的是viewDidLoad()。对于刚从C转OC的人来说，刚开始有些蒙。其实，OC中也是有mian函数的，只是不实那么明显。

 

 

1、先执行main函数，main内部会调用UIApplicationMain函数,该函数的声明如下:
     int UIApplicat...]]></description><category></category></item><item><title><![CDATA[【iOS】iOS马甲包制作+OC、Swift垃圾代码生成脚本]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/83151659</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/83151659</guid><author>qq_34716474</author><pubDate>Thu, 18 Oct 2018 19:31:07 +0800</pubDate><description><![CDATA[iOS 马甲包制作+垃圾OC、Swift代码生成脚本
文章目录iOS 马甲包制作+垃圾OC、Swift代码生成脚本一、马甲包介绍1、什么是马甲包3、怎么制作马甲包二、OC垃圾代码生成脚本三、Swift垃圾代码生成脚本
一、马甲包介绍
1、什么是马甲包
马甲包是利用APP Store规则漏洞，通过开发人员的技术手段，在多个地区平台上架同一产品。马甲包和主包内容功能是一样的。
####2、为什么要制作...]]></description><category></category></item><item><title><![CDATA[【iOS】iOS 跳转到系统的设置界面]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/51645851</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/51645851</guid><author>qq_34716474</author><pubDate>Sun, 12 Jun 2016 14:18:56 +0800</pubDate><description><![CDATA[在iOS开发中，我们经常会碰到使用位置、使用WIFI、使用的蓝牙等需求。当我们的app不允许使用位置的时候，最好的用户体验就是跳到位置设置界面，进行设置。

跳转到自己的项目的设置界面中

在需要调转的按钮动作中添加如下的代码，就会跳转到设置中自己的app的设置界面，这里会有通知和位置权限的设置
 


NSURL * url = [NSURLURLWithString:UIApplication...]]></description><category></category></item><item><title><![CDATA[HTTP状态码（全）]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/51436623</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/51436623</guid><author>qq_34716474</author><pubDate>Tue, 17 May 2016 15:42:52 +0800</pubDate><description><![CDATA[1xx消息
这一类型的状态码，代表请求已被接受，需要继续处理。这类响应是临时响应，只包含状态行和某些可选的响应头信息，并以空行结束。由于HTTP/1.0协议中没有定义任何1xx状态码，所以除非在某些试验条件下，服务器禁止向此类客户端发送1xx响应。 这些状态码代表的响应都是信息性的，标示客户应该采取的其他行动。100 Continue
    客户端应当继续发送请求。这个临时响应是用来通知客户端它...]]></description><category></category></item><item><title><![CDATA[HTTP／TCP／UDP／Socket理解]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/51436491</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/51436491</guid><author>qq_34716474</author><pubDate>Tue, 17 May 2016 15:31:37 +0800</pubDate><description><![CDATA[HTTP

中文名：超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议，是一个基于请求与响应模式的、无状态的、应用层的协议，常基于TCP的连接方式。HTTP 是一种请求/响应式的协议，让客户端和服务器进行有效的沟通。一个客户端与服务器建立连接后，发送一个请求给服务器；服务器接到请求后，给予相应的响应信息。



 

HTTP 协议的特点
...]]></description><category></category></item><item><title><![CDATA[【iOS】MVC、MVP和MVVM]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/51346426</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/51346426</guid><author>qq_34716474</author><pubDate>Sun, 08 May 2016 16:58:59 +0800</pubDate><description><![CDATA[MVC

MVC模式涉及三种对象：模型对象、视图对象、控制器对象。模型对象中保存有应用程序的数据，视图对象负责显示模型对象的数据，并且允许用户对其进行编辑。控制器对象是模型对象和视图对象之间的协调者，负责对模型对象进行初始化，并将模型对象传递给视图对象进行解析显示。



 

MVC结构存在的问题

模型的代码很少
	控制器的代码一不小心就越来越多
	不好测试
 

MVP

MVP（Mode、...]]></description><category></category></item><item><title><![CDATA[【iOS】客户端安全性问题分析及处理方式]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/51265092</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/51265092</guid><author>qq_34716474</author><pubDate>Wed, 27 Apr 2016 22:38:18 +0800</pubDate><description><![CDATA[目前，大部分的移动应用都是需要联网，与服务器进行通信，获取最新的数据。一提到网络，肯定就有大量和安全性相关的问题出来。所以，对于我们开发者而言，如何打造一个安全的App，是必须面对的问题。前段时间我专门对iOS移动应用安全性方面进行了研究，下面我们分析iOS应用中可能会存在的安全风险以及相对应的处理方式。

1、网络安全

在网络请求中，我们经常使用两种请求方式：GET和POST。如果是用GET发...]]></description><category></category></item><item><title><![CDATA[【iOS】IAP内购整个流程]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/51192153</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/51192153</guid><author>qq_34716474</author><pubDate>Tue, 19 Apr 2016 17:05:31 +0800</pubDate><description><![CDATA[最近用到IAP内置购买，阅读官方文档，在网上找了些资料，在这里作下整理，以便日后查找和修改，主要流程方向确定，文档和相关转载内容截图不一一指出，google一堆。

1.查找官方文档，两张目录截图，对主要流程大致了解：

                             

官方文档：

https://developer.apple.com/library/mac/#documentat...]]></description><category></category></item><item><title><![CDATA[【iOS】tableView的优化]]></title><link>https://blog.youkuaiyun.com/qq_34716474/article/details/51190676</link><guid>https://blog.youkuaiyun.com/qq_34716474/article/details/51190676</guid><author>qq_34716474</author><pubDate>Tue, 19 Apr 2016 15:08:01 +0800</pubDate><description><![CDATA[在IOS开发中，UITableView是最重要，最常用的控件之一。而对于UITableView的优化，也是IOS开发程序员必须要思考的问题。刚好前段时间，做的一个项目就碰到有关UITableView优化，自己也找了很多资料，所以在这里整理一下我对tableView优化的理解。

1.cell的重用

UITableView中最重要的就是cell的重用机制，只要是用了UITableView控件，就必...]]></description><category></category></item></channel></rss>