摘要:
UITapGestureRecognis前几天在做项目的时候,遇到这个一个问题,在一个视图也就是UIView上添加一个手势,然后又在这个View上添加一个UIButton,然后给按钮添加事件,运行项目的时候我发现,不管是点击按钮还是视图上的别的地方执行的都是手势所拥有的方法,后来到网上找才发现是手势把按钮的方法给屏蔽了,那怎么解决了正确的方法是给手势设置代理,然后在代理中进行判断如果点击事件是由Button执行的,那就不执行手势,那么系统会调用按钮所拥有的方法。具体的如下:[html]view plaincopyprint?UIView* showListView=[[UIView alloc 阅读全文
摘要:
GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实现的GCD,把函数闭包(Closure)的特性发挥得淋漓尽致。dispatch队列的生成可以有这几种方式:1. dispatch_queue_tqueue =dispatch_queue_create("com.dispatch.serial",DISPATCH_QUEUE_SERIAL);//生成一个串行队列,队列中的block按照先进先出(FIFO)的顺序去执行,实际上 阅读全文
摘要:
http://www.dreamingwish.com/dream-2012/gcd介绍(二)-多核心的性能.html 阅读全文
摘要:
https://github.com/ccguo/IAPPaymentDemo发一个demo 阅读全文
摘要:
我们的自己的应用里面经常涉及的要打开ppt doc,这样的功能,以前总以为iOS沙盒封闭化,不可能实现,后来终于解决了使用UIDocumentInteractionController 来解决这一问题使用下面代码,就可以打开airdrop ,然后你选择wps , 打开文档,OK- (IBAction)download:(id)sender { NSString* path = [[NSBundlemainBundle] pathForResource:@"aa"ofType:@"docx"]; NSURL *file_URL = [NSURL fileU 阅读全文
摘要:
现在ios里使用的数据库一般都是Sqlite,但是使用Sqlite有个不太好的地方就是在多线程的时候,会出现问题,sqlite只能打开一个读或者写连结。这样的话多线程就会碰到资源占用的问题。最开始是使用FMDB,FMDB的早期版本不能解决这个问题,后来FMDB更新了,新版本的FMDB能够很好的解决这个多线程使用Sqlite 。FMDB github网址 https://github.com/ccgus/fmdb 最新版的请到github取下载。本文演示了使用FMDB通过多线程来读和写数据库操作。1.建立数据库表,我采用的是Firefox的Sqlite manager 来建立的。 建表sql如下 阅读全文
摘要:
何为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没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)。有两种途径来通过GCD“榨取”多核心系统的性能:将单一任务或者一组相关任务并发至全局队列中运算;将多个不相关的任务或者关联不紧密的任务并发至用户队列中运算;全局队列设想下面的 阅读全文
摘要:
什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,GCD还提供高度集成的事件控制系统。可以设置句柄来响应文件描述符、mach ports(Mach port用于 OS X上的进程间通讯)、进程、计时器、信号、用户生成事件。这些句柄通过GCD来并发执行。GCD的API很大 阅读全文
摘要:
在iOS里面有时间涉及到网络请求,有时间涉及到数据库的查询,我们需要计算该段代码的效率,以及执行时间方面的问题,为此,可以使用下面方法:double a = CFAbsoluteTimeGetCurrent();block();//代码放到此处double b = CFAbsoluteTimeGetCurrent();unsignedint m = ((b-a) * 1000.0f); // convert from seconds to millisecondsNSLog(@"prefixString: %d ms",m);打印出a-b就是该段代码的执行时间 阅读全文