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