<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lidechen的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lidechen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lidechen]]></copyright><item><title><![CDATA[TYPagerController 简单，强大，高度定制，页面控制器,水平滚动内容和标题栏,包含多种barStyle。 TYPagerController v2.0 重构优化代码，分离出TYPager]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/77966737</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/77966737</guid><author>lidechen</author><pubDate>Wed, 13 Sep 2017 15:29:22 +0800</pubDate><description><![CDATA[TYPagerController 简单，强大，高度定制，页面控制器,水平滚动内容和标题栏,包含多种barStyle。
TYPagerController v2.0 重构优化代码，分离出TYPagerViewLayout布局类,添加更多功能，更加强大。
如果还想使用以前的版本可以查看分支v1.0.6 和 pod 'TYPagerController', '~> 1.0.6' 


TYP]]></description><category></category></item><item><title><![CDATA[[iOS] 显示 FPS 值在 iOS 状态栏的小东西]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/52172934</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/52172934</guid><author>lidechen</author><pubDate>Wed, 10 Aug 2016 16:08:59 +0800</pubDate><description><![CDATA[JPFPSStatus

README
 中文

Show FPS Status on StatusBar

Podfile
platform :ios, '7.0'
pod 'JPFPSStatus', '~> 0.0.2'

Instruction

Note：Use JPFPSStatus in DEBUG mode

add the code in AppDel]]></description><category></category></item><item><title><![CDATA[ios arc注意]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/52127516</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/52127516</guid><author>lidechen</author><pubDate>Fri, 05 Aug 2016 11:41:53 +0800</pubDate><description><![CDATA[CoreFoundation对象与NSObject对象的转换，需要添加bridge, _bridgeretained或者bridge_trasfer。

CoreFoundation的对象例如CFStringRef有自己的引用计数，和Cocoa框架中的NSObject是不同的方法，ARC只对NSObject对象的引用计数有效。只要是生成CF对象的函数名中有含有Create, Copy, 或者R]]></description><category></category></item><item><title><![CDATA[MPRemoteCommandCenter]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/51994408</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/51994408</guid><author>lidechen</author><pubDate>Fri, 22 Jul 2016 14:14:53 +0800</pubDate><description><![CDATA[MPRemoteCommandCenter 类，锁屏音乐菜单按钮]]></description><category></category></item><item><title><![CDATA[做一款仿映客的直播App？看这篇就够了]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/51994392</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/51994392</guid><author>lidechen</author><pubDate>Fri, 22 Jul 2016 14:13:26 +0800</pubDate><description><![CDATA[一、直播现状简介

1.技术实现层面

技术相对都比较成熟，设备也都支持硬编码。iOS还提供现成的Video ToolBox框架，可以对摄像头和流媒体数据结构进行处理，但Video ToolBox框架只兼容8.0以上版本，8.0以下就需要用x264的库软编了。

github上有现成的开源实现，推流、美颜、水印、弹幕、点赞动画、滤镜、播放都有。技术其实不是很难，而且现在很多云厂商都提供]]></description><category></category></item><item><title><![CDATA[ios 基本技术点]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/51752824</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/51752824</guid><author>lidechen</author><pubDate>Fri, 24 Jun 2016 14:58:51 +0800</pubDate><description><![CDATA[http://www.cnblogs.com/PSSSCode/p/5507824.html]]></description><category></category></item><item><title><![CDATA[Iphone如何判断当前网络的运营商]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/51353874</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/51353874</guid><author>lidechen</author><pubDate>Mon, 09 May 2016 16:09:25 +0800</pubDate><description><![CDATA[在IOS上存在retain屏，经常需要在一些时刻用到高清图，有些时候也要到普通图。

在网络条件很好的情况下，这当然不在话下。如果我们是iphone用户，又正好用的是移动卡。

如果还用的高清图的话是不是灰常的杯具，显然是一定的。

从目前的情况来看，只有移动的GPRS的卡速度慢的像牛一样，这样我们就需要权衡在一些场合牺牲点质量

换取速度。

那么我们就得必须知道当前网络是神]]></description><category></category></item><item><title><![CDATA[ios 架构]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/51281571</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/51281571</guid><author>lidechen</author><pubDate>Fri, 29 Apr 2016 14:22:54 +0800</pubDate><description><![CDATA[http://www.cocoachina.com/ios/20160413/15911.html
http://www.cocoachina.com/ios/20160419/15956.html]]></description><category></category></item><item><title><![CDATA[【iOS程序启动与运转】- RunLoop个人小结]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/51181717</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/51181717</guid><author>lidechen</author><pubDate>Mon, 18 Apr 2016 18:23:54 +0800</pubDate><description><![CDATA[学习iOS开发一般都是从UI开始的，从只知道从IB拖控件，到知道怎么在方法里写代码，然后会显示什么样的视图，产生什么样的事件，等等。其实程序从启动开始，一直都是按照苹果封装好的代码运行着，暴露的一些属性和方法作为接口，是让我们在给定的方法里写代码实现自定义功能，做出各种各样的应用。这些方法的调用顺序最为关键，熟悉了程序运转和方法调用的顺序，才可以更好地操控程序和代码，尽量避免Xcode不报错又实现]]></description><category></category></item><item><title><![CDATA[swift]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/51095962</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/51095962</guid><author>lidechen</author><pubDate>Fri, 08 Apr 2016 16:43:18 +0800</pubDate><description><![CDATA[1.“等价于”（用三个等号表示，===）与“等于”（用两个等号表示，==）的不同：

“等价于”表示两个类类型（class type）的常量或者变量引用同一个类实例。“等于”表示两个实例的值“相等”或“相同”，判定时要遵照设计者定义的评判标准，因此相对于“相等”来说，这是一种更加合适的叫法。
2.延迟存储属性
3.

willSet在新的值被设置之前调用didSet在新的值被设置之后立]]></description><category></category></item><item><title><![CDATA[swift 函数部分重要笔记]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/50935118</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/50935118</guid><author>lidechen</author><pubDate>Sun, 20 Mar 2016 09:24:21 +0800</pubDate><description><![CDATA[1.函数没有返回值，会返回特殊的值，叫void.它其实是一个空的元组，没有任何元素，可以写成()
2.指定外部参数名，中间以空格分隔。func someFunc(externaParameterName localParameterName:Int)
3.忽略外部参数名，用下划线_
4.默认参数值，func someFunc(Parame: Int  = 12)
5.for value i]]></description><category></category></item><item><title><![CDATA[GCD 串行队列和并行队列以及dispatch_group]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/50629384</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/50629384</guid><author>lidechen</author><pubDate>Wed, 03 Feb 2016 14:29:55 +0800</pubDate><description><![CDATA[并行队列同时会开很多线程，（测试用了11个任务，结果显示11个任务同时执行了），可以使用信号量来控制线程数量，函数concurrentQueueTest中，最多同时运行三个任务；

串行队列，执行完一个任务才会执行下一个任务，如果有两个串行队列，则两个串行队列可以并发执行， 见serialQueueTest函数以及其输出；

如果某些任务需要更另一些任务完成后才执行，可以使用dispatc]]></description><category></category></item><item><title><![CDATA[让XCode的 Stack Trace信息可读]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/47188587</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/47188587</guid><author>lidechen</author><pubDate>Sat, 01 Aug 2015 17:44:49 +0800</pubDate><description><![CDATA[昨天在写iOS代码的时候，调试的时候模拟器崩溃了。异常停在了如下整个main函数的入口处：






1
2
3
4
5
6
7



int main(int argc, char *argv[])
{
    @autoreleasepool {
        // 异常停在了下面这行，毫无提示作用
        return UIApplicationMain(ar]]></description><category></category></item><item><title><![CDATA[25条提高iOS App性能的建议和技巧]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/46726689</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/46726689</guid><author>lidechen</author><pubDate>Thu, 02 Jul 2015 14:59:26 +0800</pubDate><description><![CDATA[当我们开发iOS应用时，好的性能对我们的App来说是很重要的。你的用户也希望如此，但是如果你的app表现的反应迟钝或者很慢就会让你得到不好的评论。

     然而，由于IOS设备的限制有时很难工作得很正确。我们开发时有很多需要我们记住这些容易忘记的决定对性能的影响。

     这是为什么我写这篇文章的原因。这篇文章用备忘录的形式集合了25个技巧和诀窍可以用来提高你的app性能。所以耐心]]></description><category></category></item><item><title><![CDATA[http://www.itjhwd.com/ios/]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/45567477</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/45567477</guid><author>lidechen</author><pubDate>Thu, 07 May 2015 21:55:35 +0800</pubDate><description><![CDATA[http://www.itjhwd.com/ios/]]></description><category></category></item><item><title><![CDATA[Autorelease]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/45567147</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/45567147</guid><author>lidechen</author><pubDate>Thu, 07 May 2015 21:36:12 +0800</pubDate><description><![CDATA[我是前言

Autorelease机制是iOS开发者管理对象内存的好伙伴，MRC中，调用[obj autorelease]来延迟内存的释放是一件简单自然的事，ARC下，我们甚至可以完全不知道Autorelease就能管理好内存。而在这背后，objc和编译器都帮我们做了哪些事呢，它们是如何协作来正确管理内存的呢？刨根问底，一起来探究下黑幕背后的Autorelease机制。

Autorele]]></description><category></category></item><item><title><![CDATA[iOS关于在UITableView中，实现多个cell中不同的倒计时实现]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/43191779</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/43191779</guid><author>lidechen</author><pubDate>Tue, 27 Jan 2015 10:38:34 +0800</pubDate><description><![CDATA[在一个UITableView中，有多条数据，可能每一个cell对应的剩余时间不一样，所以，如何实现不同的cell中倒计时的实现？之前，考虑到需要单独为每一个cell中开启一个定时器，来监控对应cell的数据更新，但是很快发现这种方法行不通，因为不知道具体有多少条数据，这些数据都是动态从服务器获取的。所以，想到在请求最新的数据时，开启一个定时器，根据该定时器，分别对所有的需要进行倒计时显示的cell]]></description><category></category></item><item><title><![CDATA[Objective-C中的锁]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/43191631</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/43191631</guid><author>lidechen</author><pubDate>Tue, 27 Jan 2015 10:30:25 +0800</pubDate><description><![CDATA[锁是线程编程同步工具的基础。锁可以让你很容易保护代码中一大块区域以便你可以确保代码的正确性。

1 使用POSIX互斥锁
    POSIX互斥锁在很多程序里面很容易使用。为了新建一个互斥锁，你声明并初始化一个pthread_mutex_t的结构。为了锁住和解锁一个互斥锁，你可以使用pthread_mutex_lock和pthread_mutex_unlock函数。列表4-2显式了要初始化并]]></description><category></category></item><item><title><![CDATA[GCD学习 Main Dispatch Queue/Global Dispatch Queue]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/41319439</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/41319439</guid><author>lidechen</author><pubDate>Thu, 20 Nov 2014 20:21:15 +0800</pubDate><description><![CDATA[上节笔记中介绍了如何创建queue,通过dispatch_queue_create() 函数得到我们想要的queue,其实不用特意去创建Dispatch Queue,系统为我们实现了几个，一个是Main Dispatch Queue 一个是Global Dispatch Queue。



        Main Dispatch Queue 将任务放在主线程中去执行，可以将一些更新UI]]></description><category></category></item><item><title><![CDATA[UIGestureRecognizer的混合使用]]></title><link>https://blog.youkuaiyun.com/lidechen/article/details/40894917</link><guid>https://blog.youkuaiyun.com/lidechen/article/details/40894917</guid><author>lidechen</author><pubDate>Fri, 07 Nov 2014 16:29:58 +0800</pubDate><description><![CDATA[最近在处理一些iOS相关的手势，早期的用法是使用UIView自带的一些touch事件：

 

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;

- (void)to]]></description><category></category></item></channel></rss>