<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Robincui2011</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Robincui2011]]></copyright><item><title><![CDATA[iOS里的单元测试]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/42461233</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/42461233</guid><author>Robincui2011</author><pubDate>Tue, 06 Jan 2015 18:07:39 +0800</pubDate><description><![CDATA[最近些项目,用到单元测试,在网上找的一些方法都比较老旧了, 经过整理,总结出自己的一套方式;
1.新建一个工程MyWork,系统会自动为我们创建好单元测试文件;


2. 在测试文件的Build Settings 设置如下内容


3.添加gcov IOS7下辅助刷新的类库：  XCode5gcovPatch
下载XCode5gcovPatch后解压,将图中的文件添加到工程目录下]]></description><category></category></item><item><title><![CDATA[About iOS webview load commpletly]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/13631111</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/13631111</guid><author>Robincui2011</author><pubDate>Wed, 30 Oct 2013 17:39:26 +0800</pubDate><description><![CDATA[如何判断webview彻底加载完成,仅仅依靠webViewDidFinishLoad是不能确定的,因为一个页面可能会多次回调该函数(加载图片,加载js file,加载css,都有可能调用),
在网上找到两种解决方案:
1.http://stackoverflow.com/questions/908367/uiwebview-how-to-identify-the-last-webviewdid]]></description><category></category></item><item><title><![CDATA[上拉加载 下拉刷新]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/9948941</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/9948941</guid><author>Robincui2011</author><pubDate>Tue, 13 Aug 2013 15:22:23 +0800</pubDate><description><![CDATA[最近看了BeeFramework的demo,感觉里边的下拉类表做的很漂亮,但是想把bee的控件单独摘出来很困难,也挺麻烦的,于是就结合以前项目的控件,做了一下封装,实现类似的效果
代码:https://github.com/robin2013/CCRefreshTable


我在代码里,引用了以前作者的部分代码,但我不知道是谁 哈哈!抱歉了!]]></description><category></category></item><item><title><![CDATA[xcode 高高手]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/9619279</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/9619279</guid><author>Robincui2011</author><pubDate>Mon, 29 Jul 2013 18:38:37 +0800</pubDate><description><![CDATA[要想成为一个高手,技术自不必说,可是编码速度也得跟上,有一大堆的想法,可是敲代码却要一个月,那就悲剧了.
提高编码速度,一方面要提高你的打字速度,也就是盲打速度和效率,二就是善用你的IDE.  远离鼠标,全键盘开发.


一下的快捷键是我搜集的,还有尝试的:
0. 前言
偏好设置
command+,
清空缓存
可设
隐藏xcode
command+h
隐藏其它
comma]]></description><category></category></item><item><title><![CDATA[Animation for CATransform3D]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/9468235</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/9468235</guid><author>Robincui2011</author><pubDate>Thu, 25 Jul 2013 18:22:33 +0800</pubDate><description><![CDATA[图层的两个属性指定了变换矩阵:transform
和 sublayerTransform
属性 .




图层的transform
属性指定的矩阵结合图层的 
anchorPoint
属性作用于图层和图层的子图层上面。 






图层的 sublayerTransform
属性指定的矩阵只会影响图层的子图层,而不会对图层本身产生影响。 




]]></description><category></category></item><item><title><![CDATA[Animation 中的事务 - - CATransaction]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/9464781</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/9464781</guid><author>Robincui2011</author><pubDate>Thu, 25 Jul 2013 11:33:14 +0800</pubDate><description><![CDATA[图层的每个改变都是事务的一部分。
CATransaction 是核心动画类,它负责成批的把多个图层树的修改作为一个原子更新到渲染树。 

CATransaction 事务类,可以对多个layer的属性同时进行修改.它分隐式事务,和显式事务.


区分隐式动画和隐式事务：隐式动画通过隐式事务实现动画 。

区分显式动画和显式事务：显式动画有多种实现方式，显式事务是一种实现显式动画的方]]></description><category></category></item><item><title><![CDATA[Notification的总结]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/9410181</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/9410181</guid><author>Robincui2011</author><pubDate>Mon, 22 Jul 2013 16:01:50 +0800</pubDate><description><![CDATA[对象之间通信的标准方式是发送消息，一个object直接调用另一个object的方法。前提是你需要知道两个对象及要发送的消息的内容。而且这样子耦合度太高，绑定了两个本来是独立的object。
NSNotification包含 a name, an object, and an optional dictionary
Any object may post a notification
NSNo]]></description><category></category></item><item><title><![CDATA[Objective-C 伪继承 与 消息重定向]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/9408959</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/9408959</guid><author>Robincui2011</author><pubDate>Mon, 22 Jul 2013 14:42:59 +0800</pubDate><description><![CDATA[多继承

Objective-C不支持多重继承，但是我们有方法实现伪继承.
举个例子，加入对象A无法处理消息fun，而对象B可以处理，此时A已经继承于类C，所以此时A不能再继承B。我们可以用消息转发的方式，来将消息转发给能够处理fun消息的对象B。
当然可以这么实现




1 A: 2 -fun 3 { 4         if([B respondTo:@selector(f]]></description><category></category></item><item><title><![CDATA[IOS 打开推送的应用程序时屏幕白屏]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/9407947</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/9407947</guid><author>Robincui2011</author><pubDate>Mon, 22 Jul 2013 13:42:05 +0800</pubDate><description><![CDATA[在模拟器上运行正常，可是在往真机上推送，推送后，打开推送的应用程序时屏幕白屏,白屏之后最小化再点出来又能正常显示
白屏之后 ,页面上的控件照样能用,就是看不见,如果从顶端拉下通知中心,就又能看到页面,放手让通知中心返回,直接变白屏!
 很奇怪吧!
 这个问题好像和入口有关的main interface,出现这个问题的时候 ,应该同时出现这个警告"Applications
 are expe]]></description><category></category></item><item><title><![CDATA[CGAffineTransformInvert: singular matrix. 解决方案]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/9365955</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/9365955</guid><author>Robincui2011</author><pubDate>Thu, 18 Jul 2013 12:46:38 +0800</pubDate><description><![CDATA[这个错误叫奇异矩阵,
引起的原因有三种:
1  [UIFont fontWithName:@"AFontName" size:0]      你把字体的size设置为0了
2 你添加的view控件frame为0 例如:

I was seeing this problem too when I added a UIWebView to my self.view.
The offendi]]></description><category></category></item><item><title><![CDATA[xcode   attaching to  挂起]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/9286191</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/9286191</guid><author>Robincui2011</author><pubDate>Tue, 09 Jul 2013 22:59:30 +0800</pubDate><description><![CDATA[有时候xcode在模拟器上启动程序时,可能会出现挂起的现象,诸如attaching to.......
解决方法有几个:
1  在模拟器里删掉程序(或者模拟器还原),在xcode里边清掉缓存(/Users/apple/Library/Developer/Xcode/DerivedData)
2  执行1之后还不行,重启mac


3 如果以上还不行


Here was our ]]></description><category></category></item><item><title><![CDATA[GDC  dispatch_semaphore]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/9270249</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/9270249</guid><author>Robincui2011</author><pubDate>Mon, 08 Jul 2013 11:34:08 +0800</pubDate><description><![CDATA[当我们在处理一系列线程的时候，当数量达到一定量，在以前我们可能会选择使用NSOperationQueue来处理并发控制，但如何在GCD中快速的控制并发呢？答案就是dispatch_semaphore，对经常做unix开发的人来讲，我所介绍的内容可能就显得非常入门级了，信号量在他们的多线程开发中再平常不过了。
　　信号量是一个整形值并且具有一个初始计数值，并且支持两个操作：信号通知和等待。当一个信]]></description><category></category></item><item><title><![CDATA[NSUserDefaults 与内存]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/9226305</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/9226305</guid><author>Robincui2011</author><pubDate>Tue, 02 Jul 2013 16:50:30 +0800</pubDate><description><![CDATA[NSUserDefaults被设计用来存储设备和应用的配置信息，它通过一个工厂方法返回默认的、也是最常用到的实例对象。这个对象中储存了系统中用户的配置信息，开发者可以通过这个实例对象对这些已有的信息进行修改，也可以按照自己的需求创建新的配置项。

NSUserDefaults把配置信息以字典的形式组织起来，支持字典的项包括：字符串或者是数组，除此之外还支持数字等基本格式。一句话概括就是：基础类]]></description><category></category></item><item><title><![CDATA[iOS 扫描wifi热点那些事儿]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/8853401</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/8853401</guid><author>Robincui2011</author><pubDate>Fri, 26 Apr 2013 11:43:30 +0800</pubDate><description><![CDATA[关于ios如何扫描wifi热点,网上一搜一大把,看完之后估计你很崩溃,因为所有的文章,其实都来自一处,转来转去的毫无新意,很多时候也不能解决问题.
这里就说一下 我在做扫描时遇到的一些问题.(关于怎么扫描,自己google吧)
源码地址:     https://github.com/devinshively/wifiAssociate
扫描wifi信息的参考资料：http://code.g]]></description><category></category></item><item><title><![CDATA[Opengl ES1 笔记 2013-04-24]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/8845264</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/8845264</guid><author>Robincui2011</author><pubDate>Wed, 24 Apr 2013 16:59:02 +0800</pubDate><description><![CDATA[glCullFace：指定剔出操作的多边形面 
C语言描述 
   void
 glCullFace(GLenum mode); 
参数 
   mode 
 指定应剔除多边形的哪一个面，不是GL_FRONT就是GL_BACK。 
说明 
本函数可以禁用多边形正面或背面上的光照、阴影和颜色计算及操作，消除不必要的渲染计算是因为无论对象如何进行旋转或变换，都不会看到多边形的背面。用G]]></description><category></category></item><item><title><![CDATA[iOS 越狱判断]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/8768480</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/8768480</guid><author>Robincui2011</author><pubDate>Sun, 07 Apr 2013 16:49:13 +0800</pubDate><description><![CDATA[@interface UIDevice (Helper)  
- (BOOL)isJailbroken;  
@end

@implementation UIDevice (Helper)  
- (BOOL)isJailbroken {  
  BOOL
 jailbroken = NO;  
  NSString
 *cydiaPath = @"/Applications/C]]></description><category></category></item><item><title><![CDATA[OpenGL ES 2.0 Programme Guide]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/8750652</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/8750652</guid><author>Robincui2011</author><pubDate>Tue, 02 Apr 2013 11:48:55 +0800</pubDate><description><![CDATA[uniform

VertexArray : 绘图场景中所有的物体空间位置由点坐标数组构成。

VertexShader: 对每个点的位置进行变换，计算光照方程式生成每点的颜色，生成或者变换纹理坐标。



Attributes  ---- 采用点向量数组形式传入的每个点的数据。

Uniforms  ---- vertex shader 使用常量数量。

Sampler]]></description><category></category></item><item><title><![CDATA[齐次坐标]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/8747273</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/8747273</guid><author>Robincui2011</author><pubDate>Mon, 01 Apr 2013 16:26:07 +0800</pubDate><description><![CDATA[http://www.cnblogs.com/kesalin/archive/2009/09/09/homogeneous.html

问题: 两条平行线会相交

 
铁轨在无限远处相交于一点

在欧几里得几何空间里，两条平行线永远都不会相交。但是在投影空间中，如右图中的两条铁轨在地平线处却是会相交的，因为在无限远处它们看起来相交于一点。

在欧几里得（或称笛卡尔）空间里描述2D]]></description><category></category></item><item><title><![CDATA[glVertexPointer函数说明]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/8746323</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/8746323</guid><author>Robincui2011</author><pubDate>Mon, 01 Apr 2013 14:11:01 +0800</pubDate><description><![CDATA[指定数组顶点用glVertexPointer，指定完了就可以用glDrawArray()来把指定的数组中的顶点绘制出来了。

About glVertexPointer(int size,int type,int stride,Buffer pointer)

parameters：

size:

  每个顶点有几个数指描述。必须是2，3  ，4 之一，初始值是4.

typ]]></description><category></category></item><item><title><![CDATA[objective-c  新语法特性]]></title><link>https://blog.youkuaiyun.com/Robincui2011/article/details/8599188</link><guid>https://blog.youkuaiyun.com/Robincui2011/article/details/8599188</guid><author>Robincui2011</author><pubDate>Thu, 21 Feb 2013 16:32:25 +0800</pubDate><description><![CDATA[http://www.infoq.com/cn/articles/wwdc2012-objective-c-new-feature











今年2012的WWDC上，苹果针对Objective-C和LLVM编译器都做了重大改进，我们来看一看Objective-C增加了哪些新特性。



1、方法顺序无关

Objective-C类由声明文件h和实现]]></description><category></category></item></channel></rss>