Fork me on GitHub
上一页 1 ··· 105 106 107 108 109 110 111 112 113 ··· 125 下一页

2012年2月9日

摘要: 使用NSCondition,类似Java中的wait,notify机制 可以实现多线程的同步,即,可实现生产者消费者问题。基本思路是,首先要创建公用的NSCondition实例。然后:消费者取得锁,取产品,如果没有,则wait,这时会释放锁,直到有线程唤醒它去消费产品;生产者制造产品,首先也是要取得锁,然后生产,再发signal,语义等同Java的notify,这样可唤醒wait的消费者。示例代码如下:@interface ViewController()-(void)createProducer;-(void)createConsumer;@end@implementation Vie... 阅读全文
posted @ 2012-02-09 15:03 pengyingh 阅读(1378) 评论(0) 推荐(0)
摘要: 多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说。为了能让初级开发工程师也能使用多线程,同时还要简化复杂性。各种编程工具提供了各自的办法。对于iOS来说,建议在尽可能的情况下避免直接操作线程,使用比如NSOperationQueue这样的机制。可以把NSOperationQueue看作一个线程池,可往线程池中添加操作(NSOperation)到队列中。线程池中的线程可看作消费者,从队列中取走操作,并执行它。你可以设置线程池中只有一个线程,这样,各个操作就可以认为是近似的顺序执行了。为什么说是近似呢,后面会做解释。编写最简单的示例先写个最简单的示例。编写一个NSOperat 阅读全文
posted @ 2012-02-09 14:42 pengyingh 阅读(3913) 评论(0) 推荐(0)
摘要: iPhone应用开发中关于NSRunLoop的概述是本文要介绍的内容,NSRunLoop是一种更加高明的消息处理模式,他就高明在对消息处理过程进行了更好的抽象和封装,这样才能是的你不用处理一些很琐碎很低层次的具体消息的处理,在NSRunLoop中每一个消息就被打包在input source或者是timer source中了,来看详细内容。1.什么是NSRunLoop我们会经常看到这样的代码:- (IBAction)start:(id)sender{pageStillLoading = YES;[NSThread detachNewThreadSelector:@selector(loadPag 阅读全文
posted @ 2012-02-09 14:30 pengyingh 阅读(18710) 评论(2) 推荐(0)
摘要: NSArray 对象保存NSString *strOne = @"Persistent data1";NSString *strTwo = @"Persistent data 2";NSMutableArray *persistentArray = [[NSMutableArray alloc] init];[persistentArray addObject:strOne];[persistentArray addObject:strTwo];NSArray *filePathArray = NSSearchPathForDirectoriesInDo 阅读全文
posted @ 2012-02-09 12:16 pengyingh 阅读(223) 评论(0) 推荐(0)
摘要: #import "FirstUIAppDelegate.h" @implementation FirstUIAppDelegate @synthesize window; - (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after application launch //[self postdata]; [self setupThread]; [window makeKeyAndVisible]; } -(voi 阅读全文
posted @ 2012-02-09 11:05 pengyingh 阅读(265) 评论(0) 推荐(0)
摘要: 在iphone程序中实现截屏的一种方法://导入头文件#import QuartzCore/QuartzCore.h//创建一个基于位图的图形上下文并指定大小为CGSizeMake(200,400)UIGraphicsBeginImageContext(CGSizeMake(200,400));//renderInContext 呈现接受者及其子范围到指定的上下文[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];//返回一个基于当前图形上下文的图片UIImage *aImage =UIGraphicsGetImage 阅读全文
posted @ 2012-02-09 10:57 pengyingh 阅读(1849) 评论(0) 推荐(1)

2012年2月8日

摘要: 转载:http://blog.csdn.net/favormm/article/details/7231160coreData是iOS开发中数据库相关的核心框架,但是在多线程处理的情况下有点麻烦。官方有三种方法1. 每一个thread都有一个NSManageObjectContext2. 只有一个NSManageObjectContext,但是由一个线程来合并数据3. 只有一个NSManageObjectContext,但得加锁的方法控制,达到线程同步。这三种方法都在网方文档中有介绍。今天我自己介绍一种方法,并用有demo展示。设计思路是:专门开启一个线程,用来处理所有的数据库操作,有一个缓冲 阅读全文
posted @ 2012-02-08 21:26 pengyingh 阅读(1337) 评论(0) 推荐(0)
摘要: 扫描wifi信息:http://code.google.com/p/uwecaugmentedrealityproject/http://code.google.com/p/iphone-wireless/条形码扫描:http://zbar.sourceforge.net/iphone/sdkdoc/install.htmltcp/ip的通讯协议:http://code.google.com/p/cocoaasyncsocket/voip/sip:http://code.google.com/p/siphon/http://code.google.com/p/asterisk-voicemai 阅读全文
posted @ 2012-02-08 21:23 pengyingh 阅读(110) 评论(0) 推荐(0)
摘要: 首先,我们需要写一个头文件 定义预处理命令如下:#ifdef DEBUG#define debug_NSLog(format, ...) NSLog(format, ## __VA_ARGS__)#else#define debug_NSLog(format, ...)#endif接着我们点击项目的TARGETS栏,找到GCC 4.2 -preprocessing这一项,添加预定义宏 DEBUG如下图所示:这样 当我们在debug状态下就会显示log信息,而在release下就不会显示了。 阅读全文
posted @ 2012-02-08 21:22 pengyingh 阅读(981) 评论(0) 推荐(0)
摘要: 如题,有两个view: view1,view2view2添加view1到中,如果view2大于view1,或者view2的坐标不全在view1的范围内,view2是盖着view1的,意思就是超出的部份也会画出来UIView有一个属性,clipsTobounds 默认情况下是NO。如果,我们想要view2把超出的那部份隐藏起来的话,就得改变它的父视图也就view1的clipsTobounds属性值。view1.clipsTobounds = YES;no的情况:yes的情况: 阅读全文
posted @ 2012-02-08 21:15 pengyingh 阅读(2630) 评论(0) 推荐(1)
上一页 1 ··· 105 106 107 108 109 110 111 112 113 ··· 125 下一页

导航