<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[david21984的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/david21984</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; david21984]]></copyright><item><title><![CDATA[iOS 面试题--转自唐巧]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/57451917</link><guid>https://blog.youkuaiyun.com/david21984/article/details/57451917</guid><author>david21984</author><pubDate>Sun, 26 Feb 2017 20:19:43 +0800</pubDate><description><![CDATA[iOS 面试题（一）寻找最近公共 View


题目：找出两个 UIView 的最近的公共 View，如果不存在，则输出 nil 。
分析：这其实是数据结构里面的找最近公共祖先的问题。


一个UIViewController中的所有view之间的关系其实可以看成一颗树，UIViewController的view变量是这颗树的根节点，其它的view都是根节点的直接或间接子节点。]]></description><category></category></item><item><title><![CDATA[IOS面经系列（五）多线程开发]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/55046211</link><guid>https://blog.youkuaiyun.com/david21984/article/details/55046211</guid><author>david21984</author><pubDate>Mon, 13 Feb 2017 11:17:40 +0800</pubDate><description><![CDATA[一、概述

线程（thread）：用于指代独立执行的代码段。

进程（process）：用于指代一个正在运行的可执行程序,它可以包含多个线程。

任务（task）：用于指代抽象的概念,表示需要执行工作。




多线程的替代方法：

Operation objects（操作对象）：操作对象可能创建线程更快，因为它们使用内核里面常驻线程池里面的线程来节省创建的时间,而不是每]]></description><category></category></item><item><title><![CDATA[iOS10下视频播放黑屏，又是苹果的坑！]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/52849662</link><guid>https://blog.youkuaiyun.com/david21984/article/details/52849662</guid><author>david21984</author><pubDate>Tue, 18 Oct 2016 16:02:11 +0800</pubDate><description><![CDATA[最近业余在捣弄视频处理的相关技术。
当使用到 AVVideoCompositionCoreAnimationTool去合成视频时，用AVAssetExportSession导出的视频文件，用AVPlayer播放时有一定几率出现黑屏。
通宵2个晚上去做AB Test,基本可排除是自身代码问题，原因应该是iOS下AVAssetExportSession在跟其他AV开头的方法共同使用时，会产生不稳定]]></description><category></category></item><item><title><![CDATA[iOS10 XCode8 证书问题Signing解决方法]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/52572529</link><guid>https://blog.youkuaiyun.com/david21984/article/details/52572529</guid><author>david21984</author><pubDate>Sun, 18 Sep 2016 11:02:36 +0800</pubDate><description><![CDATA[中秋节项目要发布，临时在家里电脑打包，发现证书一直识别失败。
仔细看了Xcode的配置。尼玛Build Setting里原有的证书设置 居然Deprecated了。




然后工程一直打包失败，Target -  General 里各种红色感叹号，识别不出匹配的证书。


折腾了半天发现用下面的方法，10秒钟完美解决：


Target -  General - 勾选 X]]></description><category></category></item><item><title><![CDATA[iOS 后台任务(终于有讲得不错的了)q]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/48028971</link><guid>https://blog.youkuaiyun.com/david21984/article/details/48028971</guid><author>david21984</author><pubDate>Thu, 27 Aug 2015 15:56:06 +0800</pubDate><description><![CDATA[iOS7 之前的后台任务流程如下：



可以看到，应用其实有十分钟后台的权利。
除此之外还有两种所谓的伪后台，一种是系统推送机制，另一种是墓碑式后台（在关闭程序时保存现场，下次启动时还原，给人一种后台的假象）









i
os7
之后
（一个
app
可以混合调用多种模式）：









 
Background Au]]></description><category></category></item><item><title><![CDATA[善用do{...}while(0)]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/38332087</link><guid>https://blog.youkuaiyun.com/david21984/article/details/38332087</guid><author>david21984</author><pubDate>Fri, 01 Aug 2014 10:13:28 +0800</pubDate><description><![CDATA[linux内核和其他一些开源的代码中，经常会遇到这样的代码：





do{
 ...
}while(0)






这样的代码一看就不是一个循环，do..while表面上在这里一点意义都没有，那么为什么要这么用呢？

实际上，do{...}while(0)的作用远大于美化你的代码。查了些资料，总结起来这样写主要有以下几点好处：

1、辅助定义复杂的宏，避免引]]></description><category></category></item><item><title><![CDATA[音频队列服务(Audio Queue Services)]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/38300459</link><guid>https://blog.youkuaiyun.com/david21984/article/details/38300459</guid><author>david21984</author><pubDate>Wed, 30 Jul 2014 14:49:23 +0800</pubDate><description><![CDATA[介绍



    本文档介绍了如何使用音频队列服务(Audio Queue Services)，这是Core Audio Toolbox框架中的一个C语言编程接口。

什么是音频队列服务(Audio Queue Services)


    在iOS和Mac OS X中，音频队列服务提供了一种直接、低开销的的方式来录制和播放音频。这也是向你的iOS和Mac OS X程序中添加]]></description><category></category></item><item><title><![CDATA[Objective-C 和 Core Foundation 对象相互转换的内存管理总结]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/30072857</link><guid>https://blog.youkuaiyun.com/david21984/article/details/30072857</guid><author>david21984</author><pubDate>Wed, 11 Jun 2014 17:09:05 +0800</pubDate><description><![CDATA[iOS允许Objective-C 和 Core Foundation 对象之间可以轻松的转换，拿 NSString 和 CFStringRef 来说，直接转换豪无压力：





CFStringRef aCFString = (CFStringRef)aNSString;  
NSString *aNSString = (NSString *)aCFString;  

针对内]]></description><category></category></item><item><title><![CDATA[loadView]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/30060181</link><guid>https://blog.youkuaiyun.com/david21984/article/details/30060181</guid><author>david21984</author><pubDate>Wed, 11 Jun 2014 15:22:25 +0800</pubDate><description><![CDATA[一、loadView

1.什么时候被调用？

每次访问UIViewController的view(比如controller.view、self.view)而且view为nil，loadView方法就会被调用。

2.有什么作用？

loadView方法是用来负责创建UIViewController的view

3.默认实现是怎样的？

默认实现即[super loadVi]]></description><category></category></item><item><title><![CDATA[UIViewController生命周期]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/30057909</link><guid>https://blog.youkuaiyun.com/david21984/article/details/30057909</guid><author>david21984</author><pubDate>Wed, 11 Jun 2014 15:04:59 +0800</pubDate><description><![CDATA[UIViewController]]></description><category></category></item><item><title><![CDATA[提高ios app性能 初中高级实践]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/23921319</link><guid>https://blog.youkuaiyun.com/david21984/article/details/23921319</guid><author>david21984</author><pubDate>Thu, 17 Apr 2014 11:30:47 +0800</pubDate><description><![CDATA[这篇文章来自iOS Tutorial Team 成员 Marcelo
 Fabri, 他是 Movile 的一个iOS开发者.
 Check out his personal website or follow
 him on Twitter.原文地址

     当我们开发iOS应用时，好的性能对我们的App来说是很重要的。你的用户也希望如此，但是如果你的app表现的反应迟钝或者很慢也]]></description><category></category></item><item><title><![CDATA[iOS的主要框架介绍]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/23831285</link><guid>https://blog.youkuaiyun.com/david21984/article/details/23831285</guid><author>david21984</author><pubDate>Wed, 16 Apr 2014 11:15:08 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/yuhuangc/article/details/7575519]]></description><category></category></item><item><title><![CDATA[iphone开发秘籍－读书笔记]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/23187589</link><guid>https://blog.youkuaiyun.com/david21984/article/details/23187589</guid><author>david21984</author><pubDate>Tue, 08 Apr 2014 16:33:15 +0800</pubDate><description><![CDATA[一. loadView与viewDidLoad
假设不使用xib文件对视图布局]]></description><category></category></item><item><title><![CDATA[关于ios里webview的orientation控制的一些小结]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/22179387</link><guid>https://blog.youkuaiyun.com/david21984/article/details/22179387</guid><author>david21984</author><pubDate>Wed, 26 Mar 2014 15:07:16 +0800</pubDate><description><![CDATA[在app里打开H5应用，产品希望能进入全屏模式，并且能指定orientation（方向），比如选定以横屏或者竖屏打开。

一、如何在打开View Controller时指定其初始方向？
ios6及以后建议的方式是：
1、以present（presentViewController）全屏方式打开VC（view controller，一般来说是UINavigationController、UI]]></description><category></category></item><item><title><![CDATA[HTTP TCP SOCKET 连接之间的区别与联系]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/18737639</link><guid>https://blog.youkuaiyun.com/david21984/article/details/18737639</guid><author>david21984</author><pubDate>Fri, 24 Jan 2014 16:34:16 +0800</pubDate><description><![CDATA[一、From:http://thisliy.javaeye.com/blog/710122

http://wenku.baidu.com/view/14a30d0102020740be1e9b84.html (TCP+HTTP工作机制)

相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别，希望通过自己的浅显理解能对初学者有所帮助。

1、TCP连接]]></description><category></category></item><item><title><![CDATA[iOS 优秀第三方开源库备忘－汇总]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/18736373</link><guid>https://blog.youkuaiyun.com/david21984/article/details/18736373</guid><author>david21984</author><pubDate>Fri, 24 Jan 2014 15:50:44 +0800</pubDate><description><![CDATA[下面是一些比较流行的第三方库：

 

HTTP

相比较之下,AFNetworking是目前最优秀的一个了：轻量、易用、使用者多、开发者有在积极维护。在AFN出现之前，这个角色是由ASIHTTPRequest扮演的，只是到现在年久失修了。关于AFN和ASI的对比，这里有一篇不错的文章http://www.infoq.com/cn/articles/afn_vs_asi。除此之外，MK]]></description><category></category></item><item><title><![CDATA[asihttprequest old了，用afnetworking把！]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/18014699</link><guid>https://blog.youkuaiyun.com/david21984/article/details/18014699</guid><author>david21984</author><pubDate>Wed, 08 Jan 2014 22:54:18 +0800</pubDate><description><![CDATA[http://www.raywenderlich.com/zh-hans/36079/afnetworking速成教程（1）]]></description><category></category></item><item><title><![CDATA[touch]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/17770491</link><guid>https://blog.youkuaiyun.com/david21984/article/details/17770491</guid><author>david21984</author><pubDate>Fri, 03 Jan 2014 00:16:40 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/chun799/article/details/8194893]]></description><category></category></item><item><title><![CDATA[SVN冲突 之 树冲突]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/17527109</link><guid>https://blog.youkuaiyun.com/david21984/article/details/17527109</guid><author>david21984</author><pubDate>Tue, 24 Dec 2013 12:14:34 +0800</pubDate><description><![CDATA[经常有人会说，树冲突是很难解决的一类冲突，其实一旦了解了其原理，要解决也不难。先回顾下对于树冲突的定义。

    树冲突：当一名开发人员移动、重命名、删除一个文件或文件夹，而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改时就会发生树冲突。

出现冲突时，一般会提示冲突的信息是什么。过后我们可以使用svn st来查看当前状态。svn st的各种状态代表什么，请参考此博文svn]]></description><category></category></item><item><title><![CDATA[XCODE5 部分新特性简介]]></title><link>https://blog.youkuaiyun.com/david21984/article/details/17501057</link><guid>https://blog.youkuaiyun.com/david21984/article/details/17501057</guid><author>david21984</author><pubDate>Mon, 23 Dec 2013 11:03:56 +0800</pubDate><description><![CDATA[自从统一升级xcode5后，我们项目组用.xcassets来管理资源文件。那么这货到底是干嘛用的？

一、资源管理，Asset Catalog和Image Slicing

资源目录(Asset Catalog)和图像切片(Image Slicing)是Xcode5新加入的功能。资源目录可以方便开发者管理工程中使用的图片素材，利用开发中的命名规则（比如高清图的@2x，图标的Icon，Spl]]></description><category></category></item></channel></rss>