iOS中常见的锁 2018-01-29| iOS | 锁 锁一般用于在多线程中,保证在一段时期内这段代码只能被某一个线程所访问,从而保证线程同步。在iOS中,常用的锁大致有@synchronized,NSLock,NSCondition,NSConditionLock、NSRecursiveLock和dispatch_semaphore等,如下图所示。
常 ...
Read more iOS中触摸事件的传递和响应机制 2018-01-29| iOS | 响应连 所有继承响应者对象UIResponder都能接收并处理事件。按照时间顺序,先找到到最合适的view,然后就会调用view的touches方法,这些方法的默认做法是将事件顺着响应这链条向上传递,将事件交由上一个响应者进行处理,直到有一个view能处理该响应为止或者丢弃。这是一个从上到下,再从下到上的过 ...
Read more iOS之集合遍历 2018-01-29| iOS | Objective-C 在iOS编程中,经常需要列举collection中的元素,当前的Objective-C中有如下几种方法:
标准的c语言循环
NSEnumerator
fast enumeration
block enumeration
性能对比接下来以NSSet为例测试一下4种方法的性能。代码如下:
#imp ...
Read more Hadoop在YARN上的伪分布式安装(Mac) 2018-01-29| 大数据 | Hadoop 前提条件电脑上已经安装了SSH,Homebrew,JDK8。
配置SSH无密码登录自己电脑在终端执行以下命令:
$ ssh localhost如果需要输入密码登录,则执行以下命令:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ...
Read more 机器学习之线性回归 2018-01-29| 机器学习 | 线性回归 Question:A retail company “ABC Private Limited” wants to understand the customer purchase behaviour (specifically, purchase amount) against various pr ...
Read more CoreML实践 2018-01-29| iOS | 机器学习 本文主要讲述CoreML的一次全流程实践。Core ML模型支持很多第三方机器学习工具创建和训练的模型的转换,比如Caffe, Keras, scikit-learn, XGBoost等。利用上述工具创建和训练的模型可以通过Core ML Tools工具将模型转换为Core ML模型的格式。目前Co ...
Read more iOS编译与app启动 2018-01-29| iOS | Objective-C iOS编译当一个xcode工程build之后一般会执行如下几个步骤:
预处理
语法和语义分析
生成代码和优化
汇编
链接
iOS编译采用Clang作为编译器前端,LLVM作为编译器后端。流程如下
Clang的任务:预处理、词法分析、语法分析、语义分析、静态分析、生成中间代码。预处理:以#开头的 ...
Read more 了解和分析应用崩溃报告 2018-01-29| iOS | 崩溃分析 当一个应用崩溃时,会产生一个崩溃报告。这个报告对分析崩溃问题是非常有用的。这篇文章主要讲述了如何符号化、了解和分析应用报告。
简介当一个应用崩溃时,会随之产生一个崩溃报告存储在设备上。崩溃报告描述了当时的崩溃情况,在绝大多数时候包含每个线程的堆栈回溯。你可以通过分析这些报告来了解应用的崩溃并且修复它 ...
Read more