<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[向理想裸奔而去 的专栏]]></title><description><![CDATA[彪悍的人生何必解释]]></description><link>https://blog.youkuaiyun.com/cui7230102</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cui7230102]]></copyright><item><title><![CDATA[NSThread和dispatch_async用法和区别]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/39297387</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/39297387</guid><author>cui7230102</author><pubDate>Mon, 15 Sep 2014 20:10:24 +0800</pubDate><description><![CDATA[参考：http://www.cocoachina.com/bbs/read.php?tid=63541&page=2

//启动线程 
//    [NSThread detachNewThreadSelector:@selector(downloadImage:)
 toTarget:self withObject:ImageURL]; 
     
    dispatch_que]]></description><category></category></item><item><title><![CDATA[GCD介绍（二）: 多核心的性能]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/23426599</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/23426599</guid><author>cui7230102</author><pubDate>Fri, 11 Apr 2014 10:17:52 +0800</pubDate><description><![CDATA[概念

为了在单一进程中充分发挥多核的优势，我们有必要使用多线程技术（我们没必要去提多进程，这玩意儿和GCD没关系）。在低层，GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用，就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池（除非你的用户队列的目标是主线程，但是为了提高运行速度，我们绝不会这么干）]]></description><category></category></item><item><title><![CDATA[GCD介绍（一）: 基本概念和Dispatch Queue]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/23426399</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/23426399</guid><author>cui7230102</author><pubDate>Fri, 11 Apr 2014 10:15:17 +0800</pubDate><description><![CDATA[什么是GCD？

Grand Central Dispatch或者GCD，是一套低层API，提供了一种新的方法来进行并发程序编写。从基本功能上讲，GCD有点像NSOperationQueue，他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效，并且它不是Cocoa框架的一部分。

除了代码的平行执行能力，GC]]></description><category></category></item><item><title><![CDATA[教你把UIView切成任意形状]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/23426243</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/23426243</guid><author>cui7230102</author><pubDate>Fri, 11 Apr 2014 10:13:45 +0800</pubDate><description><![CDATA[- (void)dwMakeBottomRoundCornerWithRadius:(CGFloat)radius
{
    CGSize size = self.frame.size;
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    [shapeLayer setFillColor:[[UIColor whiteColor] C]]></description><category></category></item><item><title><![CDATA[iOS应用崩溃日志揭秘2]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/17414541</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/17414541</guid><author>cui7230102</author><pubDate>Thu, 19 Dec 2013 13:53:35 +0800</pubDate><description><![CDATA[场景 4: 吃棒棒糖时闪退!

用户邮件说, “当rage master吃棒棒糖时应用就闪退…” 另一用户说, “我让rage master 吃棒棒糖，没几次应用就闪退了!”
崩溃日志如下:





Incident Identifier: 081E58F5-95A8-404D-947B-5E104B6BC1B1
CrashReporter Key:   5a56599d836]]></description><category></category></item><item><title><![CDATA[iOS应用崩溃日志揭秘]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/17412009</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/17412009</guid><author>cui7230102</author><pubDate>Thu, 19 Dec 2013 11:08:51 +0800</pubDate><description><![CDATA[作为一名应用开发者，你是否有过如下经历?
为确保你的应用正确无误，在将其提交到应用商店之前，你必定进行了大量的测试工作。它在你的设备上也运行得很好，但是，上了应用商店后，还是有用户抱怨会闪退 !
如果你跟我一样是个完美主义者，你肯定想将应用做到尽善尽美。于是你打开代码准备修复闪退的问题……但是，从何处着手呢？
这时iOS崩溃日志派上用场了。在大多数情况下，你能从中了解到关于闪退的详尽、有用的]]></description><category></category></item><item><title><![CDATA[[iTyran翻译]OpenGL ES 从零开始系列9(完结)：四元数]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14166527</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14166527</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 15:18:15 +0800</pubDate><description><![CDATA[在进入下一篇关于骨骼动画的文章之前，让我们先花点时间来了解一个马上会使用到的新数据类型：四元数[译者注:关于四元数的概念可以参考这个链接:点我]。我们用四元数存储单一骨骼在3个轴线上的旋转信息，换句话说，存储的是骨骼指向的方向。在下一部分介绍的仿真骨骼动画中，你将会看到，模型的顶点是同一个或多个骨骼相关联的，当骨骼移动时它们也会随之变化。相对于将欧拉角信息存储在3个GLfloats变量或一个
 ]]></description><category></category></item><item><title><![CDATA[[iTyran翻译]OpenGL ES 从零开始系列9a：动画基础和关键帧动画]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14166491</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14166491</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 15:17:02 +0800</pubDate><description><![CDATA[最初这篇教程我并不打算作为第9章发布，原计划是第10章。在深入了解Opengl ES 2.0 和着色器之前，我想讨论下更基础的：动画。



注意：你可以在这里找到这篇教程的配套代码，新版本的代码已经在西部时间10：14更新了，更新的代码里面修正了一个不能动画的错误。

目前为止，想必你已经看过了opengles最基本的动画形式。通过随时间改变rotate, translate, sc]]></description><category></category></item><item><title><![CDATA[[iTyran翻译]OpenGL ES 从零开始系列08：交叉存取顶点数据]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14166369</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14166369</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 15:10:58 +0800</pubDate><description><![CDATA[Technote 2230提出了很多用OpenGL ES来提升iphone程序性能的建议。我们现在远远不能深刻理解OpenGL ES所以你需要学习以下内容。不信？是真的，试试看，我等着你的读后感。

好，就这样定了？副标题为“优化顶点数据”,这里有一些算法上的建议用来"submit strip-ordered indexed triangles
 with per vertex data i]]></description><category></category></item><item><title><![CDATA[[转载]从零开始学习OpenGL ES之四补遗 – setupView重写]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14166357</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14166357</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 15:10:21 +0800</pubDate><description><![CDATA[我在从零开始学习OpenGL ES之四 – 光效 一文中使用了一个普通GLfloat数组。由于它没有使用任何非OpenGL定义的数据结构，所以是最为普通和方便的方式。

 

但在此我使用在第一部分中定义的Vertex3D, Vector3D和 Color3D数据结构重写了 setupView:方法。并不是这种方法“更好”，但是它是一种不同的方式。当我第一次学习OpenGL时，我发现使用顶]]></description><category></category></item><item><title><![CDATA[[转载]从零开始学习OpenGL ES之七 – 变换和矩阵]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14166335</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14166335</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 15:09:12 +0800</pubDate><description><![CDATA[今天的主题是我一度谈之色变的。概念上讲，它是3D编程中最为困难的部分。




首先，你应该理解 3D 几何和笛卡尔坐标系他。你还应该理解由顶点构成的三角形组成的OpenGL虚拟世界的物体，各顶点定义了三维空间的特定点，你还应理解怎样使用这些信息在 iPhone上使用OpenGL ES进行绘制。如果你不理解这些概念，我建议你回头再看看我的前六篇文章。




为在交互式程序如游]]></description><category></category></item><item><title><![CDATA[[转载]从零开始学习OpenGL ES之六 – 纹理及纹理映射]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14166303</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14166303</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 15:07:56 +0800</pubDate><description><![CDATA[在OpenGL ES中另一种为多边形定义颜色创建材质的方法是将纹理映射到多边形。这是一种很实用的方法，它可以产生很漂亮的外观并节省大量的处理器时间。比如说，你想在游戏中造一个砖墙。你当然可以创建一个具有几千个顶点的复杂物体来定义每块砖以及砖之间的泥灰。

 

或者你可以创建一个由两个三角形构成的方块（四个顶点），然后将砖的照片映射上去。简单的几何体通过纹理映射的方法比使用材质的复杂几何体]]></description><category></category></item><item><title><![CDATA[[转载]从零开始学习OpenGL ES之五 – 材质]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14166281</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14166281</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 15:07:11 +0800</pubDate><description><![CDATA[在 上一篇文章，我们讨论了光效的设定以及光效的各种属性。我们还讨论了光的三要素：散射光, 环境光 和高光。如果你还不是完全清楚，那么我们来复习一下，在定义材质时大量的用到这些要素。








 

作为本文的起点，我们使用了原文中球体绘制 的项目文件。我们不再使用二十面体而是转向球体是因为球体是展示光和材质不同要素之间相互作用的最佳形状。

 


颜色是什么]]></description><category></category></item><item><title><![CDATA[[转载]从零开始学习OpenGL ES之四 – 光效]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14166269</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14166269</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 15:06:24 +0800</pubDate><description><![CDATA[继续我们的iPhone OpenGL ES之旅，我们将讨论光效。目前，我们没有加入任何光效。幸运的是，OpenGL在没有设置光效的情况下仍然可以看见东西。 它只是提供一种十分单调的整体光让我们看到物体。但是如果不定义光效，物体看上去都很单调，就像你在第二部分程序中看到的那样。





 



 
阴影模型（Shade Model）

 

在深入讨论OpenGL ]]></description><category></category></item><item><title><![CDATA[[转载]从零开始学习OpenGL ES之三 – 透视]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14166247</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14166247</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 15:05:29 +0800</pubDate><description><![CDATA[现在你已经知道OpenGL是怎样绘图的了，让我们回头谈谈一个很重要的概念：OpenGL视口（viewport）。 许多人对3D编程还很陌生，那些使用过像Maya, Blender, 或 Lightwave之类3D图形程序的人都试图在OpenGL虚拟世界中找到“摄像机”。但OpenGL并不存在这样的东西。它所有的是在3D空间中定义可见的物体。虚拟世界是没有边界的，但计算机不可能处理无限的空间，所以O]]></description><category></category></item><item><title><![CDATA[[转载]从零开始学习OpenGL ES之二 – 简单绘图概述]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14166227</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14166227</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 15:03:41 +0800</pubDate><description><![CDATA[还有许多理论知识需要讨论，但与其花许多时间在复杂的数学公式或难以理解的概念上，还不如让我们开始熟悉OpenGL ES的基本绘图功能。


请下载OpenGL Xcode项目模板。我们使用此模板而不是Apple提供的模板。你可以解压到下面目录来安装它：
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project]]></description><category></category></item><item><title><![CDATA[[转载]从零开始学习OpenGL ES之一 – 基本概念]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14166197</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14166197</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 15:02:20 +0800</pubDate><description><![CDATA[我曾写过一些文章介绍iPhone OpenGL ES编程，但大部分针对的是已经至少懂得一些3D编程知识的人。
作为起点，请下载我的OpenGL Xcode项目模板，而不要使用Apple提供的模板。你可以解压到下面位置安装此模板：
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Ap]]></description><category></category></item><item><title><![CDATA[Objective-C对象模型及应用]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14165403</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14165403</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 14:19:55 +0800</pubDate><description><![CDATA[前言

原创文章，转载请注明出自唐巧的技术博客。

本文主要介绍Objective-C对象模型的实现细节，以及Objective-C语言对象模型中对isa
 swizzling和method
 swizzling的支持。希望本文能加深你对Objective-C对象的理解。

ISA指针

Objective-C是一门面向对象的编程语言。每一个对象都是一个类的实例。在Object]]></description><category></category></item><item><title><![CDATA[对比iOS中的四种数据存储]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14165125</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14165125</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 14:06:00 +0800</pubDate><description><![CDATA[你是用什么方法来持久保存数据的？这是在几乎每一次关于iOS技术的交流或讨论都会被提到的问题，而且大家对这个问题的热情持续高涨。本文主要从概念上把“数据存储”这个问题进行剖析，并且结合各自特点和适用场景给大家提供一个选择的思路，并不详细介绍某一种方式的技术细节。

谈到数据储存，首先要明确区分两个概念，数据结构和储存方式。所谓数据结构就是数据存在的形式。除了基本的NSDictionary、NSA]]></description><category></category></item><item><title><![CDATA[Google Objective-C Style Guide 中文版]]></title><link>https://blog.youkuaiyun.com/cui7230102/article/details/14164937</link><guid>https://blog.youkuaiyun.com/cui7230102/article/details/14164937</guid><author>cui7230102</author><pubDate>Tue, 05 Nov 2013 13:57:35 +0800</pubDate><description><![CDATA[译者的话：

一直想翻译这个style guide，终于在周末花了7个小时的时间用vim敲出了HTML。很多术语的翻译很难，平时看的中文技术类书籍有限，对很多术语的中文译法不是很清楚，难免有不恰当之处，请读者指出并帮我改进。

王轲"ewangke at gmail.com" 2011.03.27

目录

例子空格与格式

空格与制表符行宽方法声明与定义方法调用@public]]></description><category></category></item></channel></rss>