MrBoog

Greetings Earthling!


  • Home

  • Tags

  • Categories

  • Archives

GCD 同步与异步 串行与并行

Posted on 2015-12-14 | In coding |
GCD是iOS开发多线程中经常使用的技术,先看一下GCD中的常见的术语 描述多个任务之间同一时刻的运行关系: serial(串行) 某一时刻,只执行一个任务 concurrent(并行) 可以同时执行多个任务 侧重描述一个函数的执行完成,对其他任务的影响 (既 是否任务在等待某个函数完成,然后才可以运行): synchronous(同步) 任务执行完成后reture,(阻塞) asynchronous(异步) 不等待任务执行完成, ...
Read more »

Hello ReactNative

Posted on 2015-11-11 | In coding |
虽然很多开发者都是一直使用Oc和Swift开发iOS应用,但不得不说ReactNative的’learn-once write-anywhere’,对开发者还是有强大的吸引力的。用Js写逻辑,并且使用原生的UI,不依托于浏览器,如今的Js越来越强大。即便是使用原生语言的开发者,也应该详细了解下。 配置 React Native要想在项目中使用ReactNative,需要先搭建Node.js环境。下面我们使用nvm,下载管理Node.js ...
Read more »

NSOperation

Posted on 2015-09-30 | In coding |
NSOperation 是 abstract class 抽象类,不能直接使用,我们使用的时候,一般要子类化,或者直接使用系统提供的两个子类: NSInvocationOperation NSBlockOperation 虽然GCD使用起来很方便,但使用不当也会暴露一些问题,比如对任务状态的不好控制等。这可能导致有些我们本来需要取消掉的任务,一直在运行,占用资源。这些情况下我们可以考虑通过 NSOperationQueue 加强对任 ...
Read more »

Objective-c KVC Collection Operators

Posted on 2015-05-24 | In coding |
KVC的集合运算符是一些特定的,以@符号作为前缀的字符串,可以作为key path参数传入valueForKeyPath:方法中,以完成一些特定的便捷操作,如查找最大值,最小值,平均值等等。 集合运算符,除了支持常见的集合NSArray、NSSet、NSDictionary以外,NSPointerArray、NSHashTable、NSMapTable应该也是支持的。 例如,下面是平时我们计算一个数组里Product的price属性 ...
Read more »

Terminal中模拟低速网络

Posted on 2015-05-19 | In coding |
之前一直在终端使用 ipfw脚本命令,来模拟低速网络,不过在Yosemite 之后Apple移除了ipfw 命令,but now IPFW is gone, Moving to PF。 GUI工具: Charles 这个抓包工具网络上介绍的已经很多了,就不再多说了。 使用官方提供的 Network Link Conditioner。 这是IO工具包,下载后,双击“Network Link Conditioner.prefPane ...
Read more »

Objective-c 'super' keyword

Posted on 2015-05-13 | In coding |
我们都知道当使用 self 调用方法时,会从当前类的方法列表中开始找,如果没有,就从父类中再找。当使用 super 时,则从父类的方法列表中开始找,然后调用父类的这个方法。这里 self 代表的是当前调用方法这个类的实例,super 代表父类,但具体是什么,或者是怎么做的呢,我们可以做实验检测一下。 创建一个Oc的类Dog,直接继承于 NSObject,里面有这样一些方法, 123456789101112- (void)doEat:(N ...
Read more »

Objective-c '-makeObjectsPerformSelector:'

Posted on 2015-04-07 | In coding |
-makeObjectsPerformSelector: 方法当我们需要对NSArray or NSSet里面的对象,执行同一个操作的时候,我们首先想到的可能是 for 循环。其实对于NSArray 和 NSSet 都有个一简便的方法: -makeObjectsPerformSelector:,数组里面的元素同时执行某个 selector。-makeObjectsPerformSelector:withObject:可以带一个参数。例如 ...
Read more »

JavaScriptCore Part two

Posted on 2015-02-10 | In coding |
当JSExport 遇见 class_addProtocol通过上面那篇文章,我们已经大致了解了 JavaScriptCore的基础功能。下面我们想象一个这样的场景: 如果,我需要在JS中设置某个UIView的backgroundColor,那么我可以总么做呢?我们知道以下两点: 通过创建继承于 JSExport 的协议,可以让Oc暴漏给JS使用。 通过 Runtime 的 class_addProtocol,我们可以给已经存在类添 ...
Read more »

JavaScriptCore Part one

Posted on 2015-01-17 | In coding |
随着iOS7 JavaScript引擎的开放,JS在移动端使用场景越来越多。之前,要想在Oc中调用Js,不可避免要使用webview,JavaScriptCore是可以不依托于webview的。比如当下比较火的 ReactNative、JSPatch 都有应用这个库。大部分时候我们可能不需要手写Oc和JS的交互处理,但至少也应该可以看得懂,这样也方便我们理解一些Hybrid开源框架。 JavaScriptCore框架中,两个比较重要的类 ...
Read more »

Xcode 6 live view debugger

Posted on 2014-10-18 | In coding |
之前查看视图层级,一直使用reveal。每次新的工程要想使用reveal,都要引入它的framework,用起来还是挺麻烦的。 这次Xcode 6带来了自己的 live view debugger,支持iOS8模拟器。除非想做逆向相关的处理,查看其它app的层级。不然debug自己项目的话,已经够用了。 Open your Xcode, just select Debug\View Debugging\Capture View Hie ...
Read more »
123
Huan Liu

Huan Liu

25 posts
2 categories
16 tags
GitHub E-Mail StackOverflow Instagram
0%
© 2013 — 2019 Huan Liu
Powered by Hexo
|
Theme — NexT.Pisces v5.1.4