经典算法之插入排序(Insertion Sort) 发表于 2018-04-27 | 分类于 算法 原理设有一组关键字 {K1, K2, …, Kn}; 排序开始就认为K1是一个有序的序列,使之成为一个表厂为2的有序序列;然后让K3插入上述表长为2的有序序列,使之成为一个表长为3的有序序列,以此类推,最后让Kn插入上述表长为n-1的有序序列,得一个表长为n的有序序列。 具体可以表述为下: 从第 ... 阅读全文 »
经典算法之选择排序(Selection Sort) 发表于 2018-04-24 | 分类于 算法 原理选择排序是一种简单直观的排序算法,其基本原理如下:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录的位置与第一个记录的位置交换;接着对不包括第一个记录以外的其他记录进行第二次比较,得到最小记录并与第二个位置记录交换;重复该过程,直到进行比较的记录只剩下一个为止。举例说明:要排序 ... 阅读全文 »
经典算法之冒泡排序(Bubble Sort) 发表于 2018-04-24 | 分类于 算法 原理比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成 ... 阅读全文 »
内存泄漏检测 发表于 2018-04-20 | 分类于 iOS基础 首先要明确下基本定义,什么叫内存泄漏? 内存泄漏(memory leak) :是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。 内存溢出(out of memory) :是指程序在申请内存时,没有足够的内存空间供其使用 ... 阅读全文 »
define宏定义和const定义常量区别 发表于 2018-04-10 | 分类于 iOS 由于需求不断的添加,工程越来越大,编译速度是越来越慢。之前就看过帖子: 使用宏定义过多的话,随着工程越来越大,编译速度会越来越慢。 当时也想过替换成常量,但是当时的替换方法有问题,导致编译的时候有 ... 阅读全文 »
第二篇:初识汇编 发表于 2018-03-23 | 分类于 安全攻防 我们在学习逆向开发之前,我们要了解一个基本的逆向原理.首先我们是逆向iOS系统上面的APP.那么我们知道,一个APP安装在手机上面的可执行文件本质上是二进制文件.因为iPhone手机本质上执行的指令是二进制.是由手机上的CPU执行的.所以逆向开发是建立在分析二进制上面. 汇编语言的发展机器语言 由0 ... 阅读全文 »
第一篇:工具篇 发表于 2018-03-19 | 分类于 安全攻防 工具篇 上周去上海出差,被工行的人问到了解过代码混淆技术没,因为他们对安全性比较高,所以想对代码做下混淆,我一听,这不是安全攻防方面的知识吗,我做iOS开发也没接触过这方面的知识啊,所以回来赶紧上网查找资料,进行学习,也算是给无所事事的自己找点事做。 一开始以为做安全攻防必须需 ... 阅读全文 »
Swift 学习点滴记载(一) 发表于 2018-03-05 | 分类于 Swift Swift设置导航栏(navigationBar)背景颜色,标题颜色和字体大小,item颜色12345678910111213141516func application(_ application: UIApplication, didFinishLaunchingWithOptions laun ... 阅读全文 »
iOS基础知识点总结(二) 发表于 2018-02-23 | 分类于 iOS基础 1、请简单说明多线程技术的优点和缺点?优点 能够适当提高程序的执行效率; 能够适当的提高资源的利用率,比如CPU、内存。 缺点 创建线程有额外开销 程序的代码更加复杂 线程越多,CPU在调度线程上的开销就越大 如果开启大量线程,反而会降低程序的性能 2、请简单介绍下什么是原子和非原子属性? ... 阅读全文 »
iOS基础知识点总结(一) 发表于 2018-02-05 | 分类于 iOS基础 以下是一些自己收集的比较基础的面试问题(大神可以忽略)附上答案,毕竟个人水平有限难免会有些错误或回答的局限性,如果发现错误也欢迎大家指出,一起探讨进步。 1、#import和#include的区别,@class代表什么 import会包含这个类的所有信息,包含实体变量和方法(.h文件中),而@cla ... 阅读全文 »