摘要:
对于使用代码来写UI的同志,使用DCIntrospect来查看元素信息调整布局,再也不用凭眼睛来估了,先来看看截图DCIntrospect是github上的开源项目:下载源码大概介绍下用法:DCIntrospect拖到项目中,添加 QuartzCore framework在方法didFinishLaunchingWithOptions中添加下面的代码:// always call after makeKeyAndDisplay.#if TARGET_IPHONE_SIMULATOR[[DCIntrospect sharedIntrospector] start];#endif只支持在模拟器上跑 阅读全文
摘要:
概述我将分四步来带大家研究研究程序的并发计算。第一步是基本的串行程序,然后使用GCD把它并行计算化。如果你想顺着步骤来尝试这些程序的话,可以下载源码。注意,别运行imagegcd2.m,这是个反面教材。。 imagegcd.zip (8.4 KB, 87 次)原始程序我们的程序只是简单地遍历~/Pictures然后生成缩略图。这个程序是个命令行程序,没有图形界面(尽管是使用Cocoa开发库的),主函数如下: int main(int argc, char **argv) { NSAutoreleasePool *outerPool = [NSAutoreleasePool new]; NSAp 阅读全文
摘要:
其主要思路是使用gcd创建串行队列,然后在此队列中先后执行两个任务:1.预加载一个viewController 2.将这个viewController推入代码如下:@implementation DWAppDelegate{ dispatch_queue_t _serialQueue; UINavigationController *_navController;}- (dispatch_queue_t)serialQueue{ if (!_serialQueue) { _serialQueue = dispatch_queue_create("serialQueue", 阅读全文
摘要:
何为Dispatch Sources简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。说的貌似有点不清不楚。我们到底讨论哪些事件类型?下面是GCD 10.6.0版本支持的事件:Mach port send right state changes.Mach port receive right state changes.External process state change.File descriptor ready for read.File descriptor ready f 阅读全文
摘要:
概念为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)。有两种途径来通过GCD“榨取”多核心系统的性能:将单一任务或者一组相关任务并发至全局队列中运算;将多个不相关的任务或者关联不紧密的任务并发至用户队列中运算;全局队列设想下面的循环: for(id obj i 阅读全文
摘要:
什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,GCD还提供高度集成的事件控制系统。可以设置句柄来响应文件描述符、mach ports(Mach port 用于 OS X上的进程间通讯)、进程、计时器、信号、用户生成事件。这些句柄通过GCD来并发执行。GCD的API很 阅读全文
摘要:
本文方法参考了:官方文档。见A function that draw aPDFpage的代码部分:void MyDisplayPDFPage (CGContextRef myContext, size_t pageNumber, const char *filename){ CGPDFDocumentRef document; CGPDFPageRef page; CGRect box; document = MyGetPDFDocumentRef (filename);// 1 page... 阅读全文
摘要:
IOS中可以使用"mach_absolute_time"获取到CPU的tickcount的计数值,可以通过"mach_timebase_info"函数获取到纳秒级的精确度 代码如下: uint64t start = 0; uint64t end = 0; uint64_t elapsed = 0;mach_timebase_info_t timeBaseInfo = mach_timebase_info(info); start = mach_absolute_time();// dosomething// .....end = mach_absolut 阅读全文
摘要:
一、xcode4中的环境变量$(BUILT_PRODUCTS_DIR)build成功后的,最终产品路径--可以在Build Settings参数的Per-configuration Build Products Path项里设置$(TARGET_NAME)目标工程名称$(SRCROOT)工程文件(比如Nuno.xcodeproj)的路径$(CURRENT_PROJECT_VERSION)当前工程版本号其他:当编译静态库,设备选模拟器(iPhone 5.0 Simulator),未设置任何Build Settings参数时,默认的基础路径:/Users/xxx/Library/Developer 阅读全文
摘要:
1.NSTimeInterval: 时间戳,以double为单位2.系统返回的时间都是格林尼治时间,要得到北京时间需要转化NSDate类:@interface NSDate (NSDateCreation)中方法:创建或初始化NSDate值NSDate返回日期@interface NSDate (NSExtendedDate): NSDate的扩张方法方法一:日前之间的前后比较方法二:得到距离某一日起的时间间隔(时间戳)方法三:得到在当前实例中保存的时间为基准, 过了sec的日期方法四:将时间表示字符串:description 其实这个方法写不写一样 系统会自动的参考:冷雨之家博客对该类方法. 阅读全文