- 博客(11)
- 收藏
- 关注
原创 RunLoop深度探究(四)
本文原文地址:http://yangchao0033.github.io/blog/2016/01/08/runloopshen-du-tan-jiu-(4)/译文原文链接:Run LoopsRun loops 是与线程相关联的基础设施的一部分。Run loop 是用来调度工作并且协调传入事件的时间处理循环。run loop 的目的是:让你的线程在有工作的任务的事后保持忙碌,并且在空闲的事后使线程保
2016-01-11 17:40:19
287
原创 RunLoop深度探究(三)
原文链接:http://yangchao0033.github.io/blog/2016/01/07/runloopshen-du-tan-jiu-(3)/苹果用 RunLoop 实现的功能首先我们可以看一下 App 启动后 RunLoop 的状态:CFRunLoop { current mode = kCFRunLoopDefaultMode common modes = {
2016-01-11 17:37:48
358
原创 RunLoop深度探究(二)
原文链接:http://yangchao0033.github.io/blog/2016/01/07/runloopshen-du-tan-jiu-(er-)/RunLoop 的内部逻辑根据苹果在文档里的说明,RunLoop 内部的逻辑大致如下: 内部代码整理为: /// 用DefaultMode启动void CFRunLoopRun(void) { CFRunLoopRunSpeci
2016-01-11 17:36:10
316
原创 RunLoop深度探究(一)
原文链接:http://yangchao0033.github.io/blog/2016/01/06/runloopshen-du-tan-jiu/RunLoop的概念一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线程能随时处理事件但并不退出,通常的代码逻辑是这样的:function loop() { initialize(); do {
2016-01-11 17:34:01
372
原创 Objective-C错误模型
原文链接:http://yangchao0033.github.io/blog/2016/01/04/objective-ccuo-wu-mo-xing/为什么不使用异常处理机制?事实上,OC是具备异常处理机制的,但是具体情况下不会启用该机制。原因是ARC下默认不是“异常安全”的。 理由是,如果抛出异常,那么本应该在作用域末尾释放的对象在现在不能自动释放了。 如果想生成“异常安全”的代码,
2016-01-11 17:32:00
319
原创 关于block使用的5点注意事项
**原文链接:**[http://yangchao0033.github.io/blog/2016/01/04/guan-yu-blockshi-yong-de-5dian-zhu-yi-shi-xiang-d/](http://yangchao0033.github.io/blog/2016/01/04/guan-yu-blockshi-yong-de-5dian-zhu-yi-shi-xiang
2016-01-11 17:29:42
272
原创 宏定义的高级用法
文章链接:http://yangchao0033.github.io/blog/2016/01/04/definede-gao-ji-yong-fa/1、# (stringizing)字符串化操作符。其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。 如:#define example(instr) printf(
2016-01-11 17:27:35
497
原创 为Harpy(版本更新工具)制做兼容版本
原文链接 http://yangchao0033.github.io/blog/2016/01/01/wei-harpy(ban-ben-geng-xin-gong-ju-zhi-zuo-jian-rong-ban-ben-)/中文版:Harpy(兼容版)(iOS5-9适配版本,基于ArtSabintsev/Harpy v3.4.5)提醒用户你的应用有新的可用版本,并且及时的跳转到App Store
2016-01-11 17:23:15
641
原创 MPMovieplayerviewcontroller播放结束后自动消失的解决方案
你可以使用这段代码来阻止控制器播放在播放结束后自动dismissing(消失),并且捕捉到用户点击完成的按钮事件去自己定义并处理让你的MPMoviePlayerViewController播放器的消失(dismiss)的时机 步骤 1. - 创建并初始化一个MPMoviePlayerViewController(videoPlayer)MPMoviePlayerViewController *vi
2016-01-11 17:19:53
1766
原创 关于@autoreleasepool的性能测试及手动释放自动释放池
首先,我们先对使用autoreleasepool的场景进行性能对比。不用autoreleasepool- (void)doSomething { NSMutableArray *collection = @[].mutableCopy; for (int i = 0; i < 10e6; ++i) { NSString *str = [NSString strin
2016-01-11 17:16:51
3818
原创 关于在storyboard中使用静态cell的注意事项
–关于在storyboard中使用静态TableViewCell的可变高度的使用技巧起因:在storyboard使用之前,创建tableView视图,通常是采用代码控制数据源,通过数据源数据的长度来决定tableView中cell的个数,而这样做的好处还有就是可以通过将已经在界面中展示的cell放入缓存池中,以供后续数据展示再从缓存池中取出进行复用。这样做的好处是为了防止数据过大时创建大量的cell
2016-01-11 17:09:38
663
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人