ios
jacknathan
这个作者很懒,什么都没留下…
展开
-
关于Runloop
想用比较通俗点方式解释下Runloop大致是什么东西,什么原理。一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线程能随时处理事件但并不退出,runloop就是为了实现这种机制而存在。RunLoop 实际上就是一个对象,这个对象管理了其需要处理的事件和消息,并提供了一个入口函数(内部主要是一个do-while 循环),来实现接收消息-等待-处理的循环,直到这个转载 2016-03-19 16:40:37 · 247 阅读 · 0 评论 -
CATransform3D 透视的形变效果
翻转透视效果 CATransform3D trans = CATransform3DIdentity; trans.m34 = 1.0/100; trans = CATransform3DRotate(trans, 15.0f * M_PI/180.0f, 1, 0, 0); 效果如下: transform的结构如下: struct CATransform3D原创 2016-03-08 17:07:59 · 1532 阅读 · 0 评论 -
断点的使用技巧(未完待补充)
断点的使用技巧在最初的时候不会用断点,碰到循环里特点条件断点或者特定条件下查看对象的状态属性时,我会傻傻的的去写个if语句,然后重新运行,断点完了后运行,然后再把if和log代码删除,非常低效,其实断点是可以设置属性的。断点有4个属性可以设置ConditionIgnoreOptionActionConditon, 就是断点条件,输入条件表达式后,当符合条件时断点才会原创 2015-08-07 20:58:12 · 561 阅读 · 0 评论 -
code_snippet 自定义代码块
平时有一些经常使用到的并且可复用的代码,可以用代码块的方式封装,这样能大大提高开发效率,至少能让你少些很多重复代码比如swift懒加载属性,Lazy var因为没有代码补全,所以写起来不方便,就用代码块的方式保存好,定义个快捷键(shortCut),方便很多 注意:name, type是用<#name#>, <#type#>做文本封装选中你要生成代码的代码,左键拖入代码块编辑区,生成自定义代码块原创 2016-08-03 11:21:37 · 432 阅读 · 0 评论 -
__block和__weak修饰符的区别
__weak与__block修饰符区别 API Reference对__block变量修饰符的解释,大概意思:1.__block对象在block中是可以被修改、重新赋值的。 2.__block对象在block中不会被block强引用一次,从而不会出现循环引用问题。API Reference对__weak变量修饰符的解释,大概意思:使用了__weak修饰符的对象,作用等同于定义为weak的pro转载 2016-09-27 15:15:35 · 234 阅读 · 0 评论 -
cocoapods安装pod setup error解决方法
重装了电脑系统,cocoapods安装过程中总会遇到各种问题,最常碰到的是pod setup 失败 终端提示 [!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master Cloning into ‘master’… error: RPC failed; curl 18 transfer closed with ou原创 2016-12-14 14:09:33 · 1086 阅读 · 0 评论