方法性能方法

性能测试

通常enumerateObjectsUsingBlock: 和 (for(… in …)在效率上基本一致,有时会快些。主要是因为它们都是基于 NSFastEnumeration 实现的. 快速迭代在处理的过程中需要多一次转换,当然也会消耗掉一些时间. 基于Block的迭代可以达到本机存储一样快的遍历集合. 对于字典同样适用,而数组的迭代却不行。

iOS特别技能点总结2

iOS 通知

1.在数据发生变化的界面进行通知注册和发送

 NSArray *saveImageArray = [[NSArray alloc] initWithObjects:@"123", nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"postData" object:saveImageArray];

设计模式kvo

KVO,全称为Key-Value Observing,是iOS中的一种设计模式,用于检测对象的某些属性的实时变化情况并作出响应

首先,假设我们的目标是在一个UITableViewController内对tableview的contentOffset进行实时监测,很容易地使用KVO来实现为。

在初始化方法中加入:

[_tableView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil];

预编译指令

常见的预处理功能

预处理器的主要作用就是把通过预处理的内建功能对一个资源进行等价替换,最常见的预处理有:文件包含,条件编译、布局控制和宏替换4种。

* 文件包含:#include 是一种最为常见的预处理,主要是做为文件的引用组合源程序正文。

* 条件编译:#if,#ifndef,#ifdef,#endif,#undef等也是比较常见的预处理,主要是进行编译时进行有选择的挑选,注释掉一些指定的代码,以达到版本控制、防止对文件重复包含的功能。

* 布局控制:#pragma,这也是我们应用预处理的一个重要方面,主要功能是为编译程序提供非常规的控制流信息。

* 宏替换:#define,这是最常见的用法,它可以定义符号常量、函数功能、重新命名、字符串的拼接等各种功能。

iOS特别技能点总结

修改状态栏颜色

1.在 info.plist 添加 View controller-based status bar appearance 并设置为 NO(白色),YES(黑色), 如果为NO,并在 Appdelegate 里面添加

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
则可设置为白色。

深度学习(三)

关于特征

4.1、特征表示的粒度

学习算法在一个什么粒度上的特征表示,才有能发挥作用?就一个图片来说,像素级的特征根本没有价值。例如下面的摩托车,从像素级别,根本得不到任何信息,其无法进行摩托车和非摩托车的区分。而如果特征是一个具有结构性(或者说有含义)的时候,比如是否具有车把手(handle),是否具有车轮(wheel),就很容易把摩托车和非摩托车区分,学习算法才能发挥作用。

深度学习(二)

那它是怎么学习的呢?怎么知道哪些特征好哪些不好呢?我们说机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为的学科。

人脑视觉机理

可视皮层是分级的

神经-中枢-大脑的工作过程,或许是一个不断迭代、不断抽象的过程