2015年12月10日

转载:do{}while(0)

摘要: linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:... 阅读全文

posted @ 2015-12-10 15:37 gjcat88 阅读(142) 评论(0) 推荐(0) 编辑

CocoaPods

摘要: 使用ruby的gem命令更新gem:sudo gem update --system列出ruby软件源:gem sources -l移除ruby软件源:gem sources --remove https://rubygems.org/添加ruby软件源:gem sources -a http://... 阅读全文

posted @ 2015-12-10 11:25 gjcat88 阅读(121) 评论(0) 推荐(0) 编辑

添加pch文件

摘要: pch: pre-compile header首先为工程添加一个pch格式的文件。build setting 中找到Precompile Prefix Header 选项,设置为YES。build setting 中找到 Prefix Header 选项,设置pch文件路径。$(SRCROOT)/C... 阅读全文

posted @ 2015-12-10 11:03 gjcat88 阅读(91) 评论(0) 推荐(0) 编辑

2015年12月8日

Category

摘要: 优点:1.增加方法不需要继承。2.类的实现分散化。3.前向引用。在其他地方使用类(或者Category)的私有实现时(会报错,编译不能通过),只需要在文件中添加一个声明了私有方法的Category,该方法只需要声明不需要实现,Runtime会找到实现。4.私有委托。(不知道咋回事)缺点:1.不能添加... 阅读全文

posted @ 2015-12-08 17:37 gjcat88 阅读(112) 评论(0) 推荐(0) 编辑

2015年12月7日

iOS渲染

摘要: VSync:iOS渲染由VSync信号驱动。VSync有硬件始终驱动,频率为60hz。VSync通过mach port通知APP的Runloop(可能通过调用CADisplayLink)。APP内流程:Core Animation(CA)在Runloop中注册 BeforeWaiting(即将休眠)... 阅读全文

posted @ 2015-12-07 19:41 gjcat88 阅读(307) 评论(0) 推荐(0) 编辑

2015年12月3日

GCD相关

摘要: 1,三类队列:global(high,default,low,background);main;create(serial,concurrent)。2,serial串行执行多个任务,每个任务一个线程,开销很大。3,group同步可以使用dispatch_group_wait 或者 dispatch_... 阅读全文

posted @ 2015-12-03 09:35 gjcat88 阅读(144) 评论(0) 推荐(0) 编辑

2015年12月2日

dispatch_release & dispatch_retain

摘要: sdk6.0以前不管arc或者none-arc都需要手动retain和release GCD 对象。sdk6.0以后GCD对象可以有arc处理。不需要手动retain和release。#if !OS_OBJECT_USE_OBJC //这个宏是在sdk6.0之后才有的,如果是之前的,则OS_OBJE... 阅读全文

posted @ 2015-12-02 17:07 gjcat88 阅读(258) 评论(0) 推荐(0) 编辑

*的就近原则

摘要: 就近原则,[]和()优先 double* (*a)[3][6];a为一个指针,指向一个二维数组,二维数组中保存18个 double* 的指针。double** b[3][6];b为一个数组,数组存放 double** 的指针。 阅读全文

posted @ 2015-12-02 16:03 gjcat88 阅读(97) 评论(0) 推荐(0) 编辑

2015年11月30日

OC消息转发

摘要: 1. 动态方法解析。+resolveInstanceMethod:(实例方法)或者+resolveClassMethod:(类方法)动态为类增加实例/类方法。2. 备用接收者。-(id)forwardingTargetForSelector:(SEL)aSelector 将消息转发给其他对象处理。只... 阅读全文

posted @ 2015-11-30 19:48 gjcat88 阅读(135) 评论(0) 推荐(0) 编辑

@synchronized

摘要: 1.@synchronized(obj),obj的retainCount不会增加。2.@synchronized(obj),会为代码添加隐藏的异常处理。3.@synchronized(obj),代码段中出现obj=nil,不会影响其他线程执行,但是会影响线程同步。4.@synchronized(ob... 阅读全文

posted @ 2015-11-30 17:47 gjcat88 阅读(125) 评论(0) 推荐(0) 编辑

导航